-- 外连接
-- 做一个小案例
CREATE TABLE stu
(id INT,
`name` VARCHAR(32));
INSERT INTO stu
VALUES(1,'小强'),(2,'小黄'),(5,'小明')
CREATE TABLE exam
(id INT, score DOUBLE)
INSERT INTO exam
VALUES(1,89),(2,99),(11,69)
-- 现在使用外连接,显示右表的信息
SELECT *
FROM stu RIGHT JOIN exam
ON stu.id = exam.id
-- 现在使用外连接,显示左表的信息
SELECT *
FROM stu LEFT JOIN exam
ON stu.id = exam.id
小练习:
-- 比如:列出部门名称和这些部门的员工名称和工作,同时要求 显示出没有员工的部门
-- 使用我们学习过的多表查询的SQL,看看效果
SELECT dept.deptno,dname,ename,job
FROM dept LEFT JOIN emp
ON dept.deptno = emp.deptno
ORDER BY deptno
-- 列出部门名称和这些部门的员工信息(名字和工作),同时列出哪些没有员工的部门
-- 1.使用左外连接实现
-- 2.使用右外连接实现
SELECT dname , ename, job
FROM dept LEFT JOIN emp
ON dept.deptno = emp.deptno
ORDER BY dname
SELECT dname, ename ,job
FROM emp RIGHT JOIN dept
ON dept.deptno = emp.deptno
ORDER BY dname
在开发过程中,常常使用简单的连接,而外连接不经常使用,了解即可