子查询:嵌套在其它查询中的查询,也就是在select 中 还有 select ,一个包一个。
子查询的英文翻译:subquery
相关子查询:这个子查询 不依赖 外查询,不能返回结果 缺点:(消耗时间长)
非相关子查询:这个子查询 不依赖 外查询,仍能返回结果(子查询自己能独立)
在from 之后同样能跟子查询,这个子查询是“非相关子查询”同时注意,from之后跟的是一给结果集合,必定要给它一个别名才能使用,(定义一个地址,才能在内存中找到)。
where 中的子查询 :
1.列=(子查询)
2.列 in(子查询),这个子查询返回多个结果
在子查询中使用运算符:
(他们相当于if条件判断,执行顺序在where之后)
1.exists :它里面跟一个子查询 exists(),只要子查询返回了行,它就为真
2.all :它里面跟一个子查询 all(),返回的所有行为真,它就为真
3.any:它里面跟一个子查询 any(),只要有一行为真,它就为真
组合查询数据:
union:
使用union,重复的数据会被去掉
all union:全部显示(包括重复)
使用union查询“列的数目”必须一致
1. select 列1,列2,...
union
2. select 列1,列2,...
“2.”的结果会分别按照“1.”的列,对应接在后面。
如:
1.: 1.1 1.2 1.3...
2.: 2.1 2.2 2.3...