一、引言
学到内连接,它是查询的数据两张表交集的部分。而接下来看看外连接。
外连接查询语法:(分为两种)
1、左外连接
语法结构:
表1 LEFT [OUTER] JOIN 表2 ON 条件 ...;
( ... left out join on ...)
注意:
相当于查询表1(左表)的所有数据,而且包含表1和表2交集部分的数据。
2、右外连接
语法结构:
表1 RIGHT [OUTER] JOIN 表2 ON 条件 ...;
( ... right out join on ...)
注意:
相当于查询表2(右表)的所有数据包含表1和表2交集部分的数据。
接下来去工具 DataGrip 通过两个需求去演示一下 左外连接 和 右外连接。
二、实操
(0)两张表的结构以及数据展示
员工表 emp
部门表
(1)查询emp表的所有数据,和对应的部门信息(左外连接)
因为emp表中有一条数据部门id为null,单纯用内连接查询不出来,所以要使用左外连接。
1、分析
需要操作的表结构:员工表 emp ,部门表 dept
2、连接条件
emp.dept_id = dept.id
3、编写SQL语句
sql/*左外连接*/ SELECT emp.*,dept.name FROM emp LEFT OUTER JOIN dept ON emp.dept_id = dept.id; /*省略关键字 OUTER 也可以*/ SELECT emp.*,dept.name FROM emp LEFT JOIN dept ON emp.dept_id = dept.id;
(2)查询dept表的所有数据,和对应的员工信息(右外连接)
1、注意要查询的是表 dept 下的所有数据
2、编写SQL语句
sqlSELECT d.*,e.* FROM emp AS e RIGHT OUTER JOIN dept AS d ON d.id = e.dept_id; /*省略 OUTER*/ SELECT d.*,e.* FROM emp AS e RIGHT JOIN dept AS d ON d.id = e.dept_id;
三、总结
对于左外连接与右外连接来说,在一般的项目开发当中,左外连接用的更加多一点。
因为右外连接查询的效果值,可以根据左外连接的稍加修改就可以得出一样的查询结果。
就像上面的刚刚讲的右外连接查询的例子,改一下两张表的位置得出的结果一样。
sql
SELECT d.*,e.* FROM dept AS d RIGHT JOIN emp AS e ON d.id = e.dept_id;
这篇博客的内容就到此为止。