加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL呼吁,一篇文章替你所有搞定

发布时间:2019-02-27 06:03:50 所属栏目:编程 来源:Java高级技术
导读:MySQL的根基操纵可以包罗两个方面:MySQL常用语句如高频率行使的增编削查(CRUD)语句和MySQL高级成果,如存储进程,触发器,事宜处理赏罚等。而这两个方面又可以细分如下: MySQL常用语句 表(可能数据库)的CRUD 表数据的CRUD,个中表数据查询行使最多,也更
副问题[/!--empirenews.page--]

MySQL呼吁,一篇文章替你所有搞定

MySQL的根基操纵可以包罗两个方面:MySQL常用语句如高频率行使的增编削查(CRUD)语句和MySQL高级成果,如存储进程,触发器,事宜处理赏罚等。而这两个方面又可以细分如下:

MySQL常用语句

  • 表(可能数据库)的CRUD
    • 表数据的CRUD,个中表数据查询行使最多,也更伟大。查询可以凭证单表照旧多表可以分为:单表SELECT查询和多表的联络查询(INNER JOIN, LEFT JOIN, RIGHT JOIN和FULL JOIN)以及组合查询UNION和UNION ALL
  • SQL语句中各个要害字的执行次序
  • 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语句:

MySQL呼吁,一篇文章替你所有搞定

有这样一些细节:

应承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用于束缚粉碎表的联络举措,担保两个表的数据完备性。同时也能防备犯科数据插入外键列,由于该列值必需指向另一个表的主键。实例为:

MySQL呼吁,一篇文章替你所有搞定

1.3 删除表(或数据库)

删除数据库:DROP DATABASE customers;

删除表,行使DROP TABLE子句:DROP TABLE customers。

1.4 更新表

更新表布局信息可以行使ALTER TABLE子句,如为表增进一列:ALTER TABLE vendors ADD vend_name CHAR(20);其它常常用于界说外键,如:

MySQL呼吁,一篇文章替你所有搞定

重定名表,行使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子句;

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读