昨天和大家聊了外连接的概念和语法,今天我们一起就做点练习。
先看下要使用的表(emp、dept、salgrade)结构和表关系
我们看到以上的语句把emp、dept表内的记录交叉组合,产生了迪卡尔积效应。
l 左外连接
从结果上可看到emp表中最后一条虽没有部门编号也查询出来,符合左外连接的定义。
l 右外连接
右表dept中编号为40的部门虽没有员工也给查询了出来。
l 自连接
以上查询中连接的都不是不同表,而所谓的自连接是参与连接的表都是同一张表,只是给表取不同的别名。
还记得之前小傅老师给大伙留的一个题目:
Ø 查询员工的基本信息和他的直级上领导姓名
由于领导也是员工信息也保存在emp表内,针对这类题目就可采用连接处理。
结果
总结
分为:
1.CROSS JOIN:产生迪卡尔积。
2.INNERT JOIN:查询所有匹配的项。
3.OUTER JOIN
外连接分为:
1) LEFT OUTER JOIN/LEFT JOIN:显示左表的所有项,右表没有匹配的项,则以null显示。
2) RIGHT OUTER JOIN/RIGHT JOIN:显示右表的所有项,左表没有匹配的项,则以null显示。
3) FULL OUTER JOIN/FULL JOIN:显示所有匹配和不匹配的项,左右两张表没有匹配的,都以null显示。
4.SELF JOIN:把一张表取两个别名,当做两张表来使用,自己和自己关联。