MySQL呼吁,一篇文章替你所有搞定
副问题[/!--empirenews.page--]
MySQL的根基操纵可以包罗两个方面:MySQL常用语句如高频率行使的增编削查(CRUD)语句和MySQL高级成果,如存储进程,触发器,事宜处理赏罚等。而这两个方面又可以细分如下: MySQL常用语句
1. 表(或数据库)操纵语句1.1. 查询表(或数据库) 获取全部可用的数据库:SHOW DATABASES; 选择数据库:USE customers; 用于表现数据库处事器的状态信息:SHOW STATUS; 用来表现授权用户的安详权限:SHOW GRANTS; 用来表现数据库处事器或告诫信息:SHOW ERRORS可能SHOW WARNINGS; 用于表现建设数据库时的建设语句:SHOW CREATE DATABASE customers; 用于表现建设表时的建设语句:SHOW CREATE TABLE customers; 获取当前所选的数据库中全部可用的表:SHOW TABLES; 获取表中全部列的信息:SHOW COLUMNS FROM tableName;同时DESCRIBE语句有沟通的结果:DESCRIBE tableName; 1.2. 新建表(或)数据库 新建数据库:CREATE DATABASE customers; 建设表可以行使CREATE TABLE语句: 有这样一些细节: 应承NULL值,则声名在插入行数据时应承不给出该列的值,而NOT NULL则暗示在插入可能更新该列数据,必需明晰给出该列的值; DEFAULT暗示该列的默认值,在插入行数据时,若没有给出该列的值就会行使其指定的默认值; PRIMARY KEY用于指定主键,主键可以指定一列数据,而可以由多列数据组合组成,如PRIMARY KEY(cust_id,cust_name); ENGINE用于指定引擎范例。常见的引擎范例有这些:(1)InnoDB是一个支持靠得住的事宜处理赏罚的引擎,可是不支持全文本搜刮;(2)MyISAM是一本机能极高的引擎,它支持全文本搜刮,可是不支持事宜处理赏罚;(3)MEMORY在成果上等同于MyISAM,但因为数据存储在内存中,速率很快(出格得当于姑且表); 在建设表的时辰可以行使FOREIGN KEY来建设外键,即一个表中的FOREIGN KEY指向另一个表中PRIMARY KEY。外键FOREIGN KEY用于束缚粉碎表的联络举措,担保两个表的数据完备性。同时也能防备犯科数据插入外键列,由于该列值必需指向另一个表的主键。实例为: 1.3 删除表(或数据库) 删除数据库:DROP DATABASE customers; 删除表,行使DROP TABLE子句:DROP TABLE customers。 1.4 更新表 更新表布局信息可以行使ALTER TABLE子句,如为表增进一列:ALTER TABLE vendors ADD vend_name CHAR(20);其它常常用于界说外键,如: 重定名表,行使RENAME子句。RENAME TABLE backup_customers TO customers, backup_vendors TO vendors;变动多个表名,之间用逗号隔断 2 表数据操纵语句2.1 查询表数据 根基查询语句 按照过滤前提查询表中的单列可能多列可能所有列的信息SELECT FROM WEHERE:SELECT cust_id,cust_name FROM customers WHERE cust_id=10086;个中过滤前提操纵符有:=,<>,!=,<,<=,>,>=,BETWEEN AND,IS NULL; 为查询出的某一列信息去重DISTINCT:SELECT DISTINCT cust_name FROM customers; 限定单列查询功效的行数:SELECT cust_name FROM customers LIMIT 5;LIMIT后跟一个数值,暗示从第0行开始取,共取5行数据;假如LIMIT 5,5暗示从第5行(数据库中现实第6行记录)开始取,共取5行数据。留意:数据是从第0行开始计数的; ORDER BY子句取一个可能多个列,据此对输出举办排序:SELECT cust_id,cust_name FROM customers ORDER BY cust_id DESC, cust_name; IN操纵符用来指定前提范畴,范畴中的每个前提都可以举办匹配:SELECT cust_id, cust_name FROM customers WHERE cust_id IN (1000,2000)。其它,NOT操纵符可以和IN操纵符共同行使,用于暗示检索出不切合前提的全部数据; LIKE操纵符用来表白恍惚查询,与之共同行使的通配符有**%**,%暗示任何字符呈现任何次数;_,_暗示只能匹配一个字符:SELECT cust_id,cust_name FROM customers WHERE cust_name LIKE '%happy%'; 行使分组查询并可以满意必然的分组过滤前提GROUP BY HAVING。如检索总计订单金额大于便是50的订单号和订单总金额,并按总金额举办排序:SELECT order_num,SUM(quantity*item_price) AS order_total FROM orderitems GROUP BY order_num HAVING SUM(quantity*item_price)>=50 ORDER BY order_total WHERE和HAVING的较量。WHERE是行级过滤,而HAVING是组级过滤。被WHERE过滤掉的数据不会呈此刻分组中。WHERE中通配符以及多个WHERE子句的毗连同样合用于HAVING子句; (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |