3.自然连接
自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。而等值连接并不去掉重复的属性列。
自然连接的语法如下:
- SELECT * FROM 表1 别名1 NATURAL JOIN 表2 别名2
(1)将emp表中的deptno列名修改为dp,如图1-4所示:
图1-4 修改列名
(2)查询每个员工的信息及所在部门信息,使用自然连接查询,对应的sql语句是:select * from emp e NATURAL JOIN dept d,查询结果如图1-5所示:
图1-5 自然连接
自然连接查询的步骤:
- 第一步:做笛卡尔积;
- 第二步:做等值判断,例如emp.某个列名=dept.某个列名,要求两个表进行比较的列名相同;
- 第三步:去掉重复的的属性列。
图1-5中,查询结果的列数是11,emp表的总列数是8,dept表的总列数是3,也就是说查询结果包含两个表的所有列。并且查询结果的记录数是60,出现这种情况的原因是emp表中没有与dept表相同的列,我们将emp表中的deptno列名修改为dp,因此在进行自然连接时,查询的第二步与第三步就无法进行,只做了第一步,因此结果就是两个表的笛卡尔积。
(3)将emp表的列名dp修改为deptno,然后再进行自然连接,查询每个员工的姓名、工资以及所在部门的名称,查询结果如图1-6所示:
图1-6 自然连接
图1-6中,查询结果的总记录数是14,每个员工的相关信息都正确的查询出来了。
本文版权归传智播客Java培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Java培训学院
首发:http://www.itcast.cn/javaee