在emp表中新增一条数据--貂蝉,不给他指定外键,也就是deptno为null。
在dept表中新增一个部门--情报部,但是现在还没有任何员工指向他。
那么使用内连接查询时,是查询不到貂蝉和情报部的。
如果我们要想显示出貂蝉或情报部,就需要使用外连接了。
外连接
- 外连接有一主一次,主表所有记录无论是不是满足条件,都查询出来,当不满足条件时,次表使用null来补位
- 语法:
SELECT * FROM 表1 LEFT/RIGTH JOIN 表2 ON 条件
- 查询所有员工姓名、工种、工资、部门编号、部门名称
- 外连接分左外连接和右外连接
左外连接
-
以左表为主表,左表显示完全
右连接
-
以右表为主表,右表显示完全
全连接
我们发现不管是左外还是右外,都不能把员工和部门全部显示完,那如果想显示完全该怎么办呢?
其实左外和右外查询出来的结果,列数和列类型都刚好完全一致,我们用去重的合并结果集就能完成该功能了