Mysql

一、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,等函数。

idnamedatesingin
1小明2016-04-22 15:25:331
2小王2016-04-20 15:25:473
3小丽2016-04-19 15:26:022
4小王2016-04-07 15:26:144
5小明2016-04-11 15:26:404
6小明2016-04-04 15:26:542

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

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

五、连接

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

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

有两张表 tcount_tbl 和 runoob_tbl。

SELECT * FROM tcount_tbl;
runoob_authorrunoob_count
腾讯10
Baidu20
Google22
SELECT * from runoob_tbl;
runoob_idrunoob_titlerunoob_authorsubmission_date
1学习 PHP腾讯2019-04-12
2学习 MySQL腾讯2019-04-12
3学习 JavaBaidu2017-05-01
4学习 PythonBaidu2018-03-06
5学习 C++FFF2016-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_ida.runoob_authorb.runoob_count
1腾讯10
2腾讯10
3Baidu20
4Baidu20

在这里插入图片描述
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_ida.runoob_authorb.runoob_count
1腾讯10
2腾讯10
3Baidu20
4Baidu20
5FFFNULL

在这里插入图片描述
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_ida.runoob_authorb.runoob_count
1腾讯10
2腾讯10
3Baidu20
4Baidu20
NULLNULL22

在这里插入图片描述

六、索引

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

普通索引和唯一索引。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值