1. 嵌套查询
主要用于顺藤摸瓜式的从另一张表查出本表某些字段的具体的值。
例如,Dept表只有部门编号,如果想要查出部门的名称就要使用另一张表(Emp)。
- 2.内联结查询
笛卡尔积。
(a,b)×(1,2)= (a1,a2,b1,b2)
如果将表看做集合,每个元素就是一个记录,则表和表的笛卡尔积就是记录×记录的组合。
多表查询的内联结查询通常要生成笛卡尔积然后再加上条件约束,就得到要筛选的数据。
内联结的写法:
传统的:在from后面摆上多个表,+where子句写上表之间的联结条件。
新的写法:
from 表1 inner join 表2 on 联结条件.
- 3.自联结查询
将同一张表通过重命名变成另一张表然后进行多表内联结查询。
- 4.子查询
将查询的结果当做一个表,然后再去查询。
要点:通过select输出得到一张临时表,重命名,然后再以新表名去查询。
- 5.外联结查询
两张表查询,内联结是满足两表的关系的记录才被筛选出来,外联结是以一张表为基础,查询另一张表的记录,如果没有则用NULL来表示。
有左外联结和右外联结区分,左外联结以前面的表为基准,右外则以后面的为基准。
- 6.联合查询
将多个表的查询结果用union组合在一起。
字段名字可以不同,但是列数必须要相同。
查询的结果会自动去重,如果不要去重,使用union all。