目录
一、多表查询
我们需要的数据往往会来自不同的表,所以我们需要从多个表中查询数据,如何做?
用 emp 和 dept 两张表来举个例子,emp --- 记录员工的相关信息,dept --- 记录部门的相关信息
- 查看每个员工和其所在部门的所有信息
为什么能这样查询?首先要明白下面这条语句的作用
select * from emp, depth;
显然,这条选择语句会让两个表的数据进行组合相乘(笛卡尔积),得到一张新的表,我们查询的本质依旧是在这张新表中查找数据,只不过where的筛选条件需要带上表名,因为它们的列名一样。
- 显示部门号为10的部门名,员工名和工资
二、自连接
自连接是指在同一张表连接查询
- 显示员工的上级领导的编号和姓名及其下级(mgr是员工领导的编号--empno)
注意:需要给表先取别名,两张表的名字一样数据库无法分辨
三、子查询
子查询是指嵌入在其他
sql
语句中的
select
语句,也叫嵌套查询
1、单行子查询
返回一行记录的子查询
- 显示Alice同一部门的员工