、什么是外连接,和内连接有什么区别?
内连接:
假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询出来,这就是内连接。AB两张表没有主副之分,两张表是平等的。
外连接:
假设A和B表进行连接,使用外连接的话,AB两张表中有一张表是主表,一张表是副表,主要查询主表中的数据,捎带着查询副表,当副表中的数据没有和主表中的数据匹配上,副表自动模拟出NULL与之匹配。
2、外连接的分类?
左外连接(左连接):表示左边的这张表是主表。
右外连接(右连接):表示右边的这张表是主表。
左连接有右连接的写法,右连接也会有对应的左连接的写法。外连接最重要的特点是:主表的数据无条件的全部查询出来。
3、我们通过员工表(emp)和部门表(dept)来演示外连接
员工表
部门表
案例:找出哪个部门没有员工?
从需求中我们就可以发现一定是用部门表作为主表,所以sql语句如下:
SELECT
d.*
FROM
dept d
LEFT JOIN
emp e
ON
d.deptno = e.deptno
WHERE
e.ename IS NULL;
没有员工的部门记录