第05章02节-连接查询-内连接

四、内连接

一、什么叫内连接

内连接.png

满足条件的记录才会出现在结果集中。

二、内连接之等值连接

连接时,条件为等量关系。

案例:查询每个员工所在的部门名称,要求显示员工名、部门名。

1
2
3
4
5
6
7
8
select
e.ename,d.dname
from
emp e
inner join
dept d
on
e.deptno = d.deptno;

注意:inner可以省略。

image.png

案例:查询员工薪资>2000所在的部门名称,要求显示员工名、部门名。

1
2
3
4
5
6
7
8
9
10
select
e.ename,d.dname
from
emp e
inner join
dept d
on
e.deptno = d.deptno;
where
sal > 2000;

三、内连接之非等值连接

连接时,条件是非等量关系。

案例:查询每个员工的工资等级,要求显示员工名、工资、工资等级。

1
2
3
4
5
6
7
8
select
e.ename,e.sal,s.grade
from
emp e
join
salgrade s
on
e.sal between s.losal and s.hisal;
image.png

四、内连接之自连接

连接时,一张表看做两张表,自己和自己进行连接。

案例:找出每个员工的直属领导,要求显示员工名、领导名。

1
2
3
4
5
6
7
8
select
e.ename 员工名, l.ename 领导名
from
emp e
join
emp l
on
e.mgr = l.empno;
1
2
3
4
5
6
7
8
select
e.ename 员工名, l.ename 领导名
from
emp e
join
emp l
where
e.mgr = l.empno;
image.png

思路:
将emp表当做员工表 e

image.png

将emp表当做领导表 l

image.png

可以发现连接条件是:e.mgr = l.empno(员工的领导编号=领导的员工编号)
注意:KING这个员工没有查询出来。如果想将KING也查询出来,需要使用外连接。