跟小博老师一起学习数据库 ——外连接
2017-04-12 13:31
387 查看
昨天小傅老师和大家聊了外连接的概念和语法,今天我们一起就外连接做点练习。
先看下要使用的表(emp、dept、salgrade)结构和表关系
l 全连接
我们看到以上的语句把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:把一张表取两个别名,当做两张表来使用,自己和自己关联。
先看下要使用的表(emp、dept、salgrade)结构和表关系
l 全连接
我们看到以上的语句把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:把一张表取两个别名,当做两张表来使用,自己和自己关联。
相关文章推荐
- 跟小博老师一起学习数据库 ——连接查询
- 跟小博老师一起学习数据库 ——外连接
- 跟小博老师一起学习数据库 ——连接查询
- 跟小博老师一起学习数据库 ——约束
- 跟小博老师一起学习数据库 ——SQL语言
- 跟小博老师一起学习数据库 ——delete
- 跟小博老师一起学习数据库 ——表
- 跟小博老师一起学习数据库 ——INSERT
- 跟小博老师一起学习数据库 ——MySql安装
- 跟小博老师一起学习数据库 ——多表查询
- 跟小博老师一起学习数据库 ——update
- 跟小博老师一起学习数据库 ——GROUP BY
- 跟小博老师一起学习数据库 ——SELECT
- 跟小博老师一起学JSP ——连接数据库
- 跟小博老师一起学习数据库 ——order by
- 跟小博老师一起学习数据库 ——多表查询
- 跟小博老师一起学习数据库 ——WHERE子句
- 跟小博老师一起学习数据库 ——MySql安装
- 跟小博老师一起学习数据库 ——约束
- 跟小博老师一起学习数据库 ——约束(中篇)