多表查询
关系
一对多关系
多对多关系,可以通过建立中间表来进行关联。
连接查询
内连接
查询A和B表的交集
隐式内连接
select 字段列表 from 表1, 表2 where 条件...;
#eg
select emp.name, dept.name from emp, dept where emp.dept_id = dept.id;显式内连接
select 字段列表 from 表1 [inner] join 表2 on 连接条件;
#eg
select e.name, d.name from emp e inner join dept d on e.dept_id = d.id;外连接
左外连接
相当于查询表1(左表)的所有数据包含表1和表2交集部分的数据
右外连接
相当于查询表2(右表)的所有数据包含表1和表2交集部分的数据
自连接
自连接可以是内连接查询也可是外连接查询
联合查询
对union查询,就是把多次查询的结果合并起来,形成一个新的查询结果集
联合查询的多张表的列数必须保持一致,字段类型也需要保持一致。
union是对查询结果的进行去重合并
union all是不去重
子查询
嵌套查询(以下是一个示例语法)
可以分为以下四类:
标量子查询,子查询结果为单个值
列子查询,子查询结果为一列
行子查询,子查询结果为一行
表子查询,子查询结果是多行多列
根据子查询出现的位置,可以分为:
where之后的子查询
from之后的子查询
select之后的子查询
列子查询
常用的操作符:in,not in,any,some,all
any和some是指有一个满足即可,all指都要满足
行子查询
常用操作符:=, <>, in, not in
表子查询
最后更新于
这有帮助吗?