Mysql

匿名 (未验证) 提交于 2019-12-02 22:02:20

一、UNION 操作符

描述
MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

UNION 只会选取不同的值。请使用 UNION ALL 来选取重复的值!

UNION 语句:用于将不同表中相同列中查询的数据展示出来;(不包括重复数据)
UNION ALL 语句:用于将不同表中相同列中查询的数据展示出来;(包括重复数据)

使用形式如下:

SELECT 列名称 FROM 表名称 UNION SELECT 列名称 FROM 表名称 ORDER BY 列名称; SELECT 列名称 FROM 表名称 UNION ALL SELECT 列名称 FROM 表名称 ORDER BY 列名称; 

二、LIKE 子句

like 匹配/模糊匹配,会与 % 和 _ 结合使用。

'%a'     //以a结尾的数据 'a%'     //以a开头的数据 '%a%'    //含有a的数据 '_a_'    //三位且中间字母是a的 '_a'     //两位且结尾字母是a的 'a_'     //两位且开头字母是a的 

三、ORDER BY 子句

使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。

SELECT * from runoob_tbl ORDER BY submission_date ASC; 

四、GROUP BY 语句

GROUP BY 语句根据一个或多个列对结果集进行分组。
在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。

id name date singin
1 小明 2016-04-22 15:25:33 1
2 小王 2016-04-20 15:25:47 3
3 小丽 2016-04-19 15:26:02 2
4 小王 2016-04-07 15:26:14 4
5 小明 2016-04-11 15:26:40 4
6 小明 2016-04-04 15:26:54 2

使用 GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录:

select name,count(*) from employee_tbl group by name; 
name COUNT(*)
小丽 1
小明 3
小王 2

五、连接

从多个数据表中读取数据。MySQL 的 JOIN 在两个或多个表中查询数据。
JOIN 按照功能大致分为如下三类:

  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
  • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

有两张表 tcount_tbl 和 runoob_tbl。

SELECT * FROM tcount_tbl; 
runoob_author runoob_count
腾讯 10
Baidu 20
Google 22
SELECT * from runoob_tbl; 
runoob_id runoob_title runoob_author submission_date
1 ѧϰ PHP 腾讯 2019-04-12
2 ѧϰ MySQL 腾讯 2019-04-12
3 ѧϰ Java Baidu 2017-05-01
4 ѧϰ Python Baidu 2018-03-06
5 ѧϰ C++ FFF 2016-04-05

INNER JOIN

SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a  INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author; 
a.runoob_id a.runoob_author b.runoob_count
1 腾讯 10
2 腾讯 10
3 Baidu 20
4 Baidu 20


LEFT JOIN
使用了 LEFT JOIN,该语句会读取左边的数据表 runoob_tbl 的所有选取的字段数据,即便在右侧表 tcount_tbl中 没有对应的 runoob_author 字段值。

SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a  LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author; 
a.runoob_id a.runoob_author b.runoob_count
1 腾讯 10
2 腾讯 10
3 Baidu 20
4 Baidu 20
5 FFF NULL


RIGHT JOIN
使用了 RIGHT JOIN,该语句会读取右边的数据表 tcount_tbl 的所有选取的字段数据,即便在左侧表 runoob_tbl 中没有对应的runoob_author 字段值。

SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a  RIGHT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author; 
a.runoob_id a.runoob_author b.runoob_count
1 腾讯 10
2 腾讯 10
3 Baidu 20
4 Baidu 20
NULL NULL 22

六、索引

索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。

普通索引和唯一索引。

文章来源: https://blog.csdn.net/qq_32511007/article/details/97161735
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!