一、联合查询 union
union:是指将多个查询结果合并成一个结果显示。
1.联合查询是针对查询结果的合并(多条select语句合并)
2.联合查询语法
select 查询
union 查询选项
select查询
...
3.联合查询要求:联合查询是结果联合显示
· 多个查询的字段结果数量一致
· 联合查询的字段来源于第一个查询语句的字段
4.查询选项:与select选项类似
· all:保留所有记录
· distinct:保留去重记录(默认)
二、联合查询排序
1)针对联合查询的结果进行排序
2)order by 本身是对内存结果进行排序,union的优先级别高于order by
所有order by默认是对union结果进行排序
3)如果想要对单独select 的结果进行排序,需要两个步骤
·将需要排序的select指令进行括号包裹(括号里使用order by)
·order by必须配合limit才能生效
三、连接查询
1)连接查询 join,将两张表依据某个条件进行数据拼接
·join左右各一张表:join左边叫左表,右边叫右表
·连接查询的结果都是记录会保留左右表的所有字段(字段拼接)
·连接查询不限定表的数量,可以进行多表连接,只是表的连接需要一个一个的连
(A join B join C)
2)交叉连接 cross join 不需要连接条件的连接
·交叉连接产生的结果就是笛卡尔积(左表的每一条记录都会与右表的所有记录连接并保留)
·交叉连接没有实际数据价值,只是丰富了连接查询的完整性
3)内连接 inner join将两张表根据指定的条件连接起来,严格连接
·内连接是将一张表的每一条记录去另一张表更具条件匹配
·匹配成功:保留连接数据
·匹配失败:都不保留
·内连接语法:左表 inner join 右表 on 连接条件
4)外连接 outer join是一种不严格的连接方式
1.外连接分为两种
·左外连接:left join
·右外连接:right join
2.外连接有主表何从表之分
·左连接:左表为主
·右连接:右表为主
3.外连接是将主表的记录去匹配从表的记录
·匹配成功保留
·匹配失败:也保留,只是从表字段置空
5)自然连接是一种自动寻找连接条件的连接查询
·自然连接不是一种特殊的连接方式,而且一种自动匹配条件的连接方式
·自然连接包含自然内连接何自然外连接
·自然连接条件匹配模式:自动寻找相同字段名作为连接条件(字段名相同)
6)using关键字
using关键字:连接查询时如果是同名字段作为连接条件,using可以替换on(比on好)
·using是针对同名字段(using(id) === A.id = B.id)
·using关键字使用后会自动合并对应字段为一个
·using可以同时使用多个字段作为条件
四、子查询通过select查询结果当作另一个select查询的条件或者数据源
子查询:根据子查询出现的位置或着产生的数据效果分类
·位置分类:
·from子查询:子查询出现在from后做数据源
·where子查询:子查询出现在where后做数据条件
·按子查询得到的结果分类
·标量子查询:子查询返回的结果是一行一列(一个数据)
·列子查询:子查询返回的结果是一列多行(一列数据)
·行子查询:子查询返回的结果是一行多列
·表查询:子查询返回的结果是一个二维表
·exists子查询:子查询返回的结果是布尔类型(验证型)
·子查询都需要使用()进行包裹,必要时需要对子查询结果进行别名处理(from 子查询)
1)标量子查询
2)列子查询
3)行子查询
4)表子查询
5)exists子查询
6)比较方式