各种连接(Natural Join, Outer Join等)的区别

连接join也叫 theta join(θ join, θ连接)。它是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。

连接运算中有两种最为重要也最为常用的连接,一种是等值连接,一种是自然连接。

等值连接

《各种连接(Natural Join, Outer Join等)的区别》 关系R与关系S

等值连接后的结果

《各种连接(Natural Join, Outer Join等)的区别》 等值连接

自然连接(natural join)

自然连接是一种特殊的等值连接。比较两幅图就可以看出,自然连接在结果中把重复的属性列去掉。

一般的连接操作是从行的角度进行运算,但是自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。

在关系数据库中,数据库的重构往往是不可避免的。重构数据库最常见的是将一个基本表“垂直”地分成多个基本表。例如:将学生关系:

Student(Sno, Sname, Ssex, Sage, Sdept)

分为SX(Sno, Sname, Sage)和SY(Sno, Ssex, Sdept)两个关系。这时原表Student为SX表和SY表自然连接的结果

自然连接后的结果

《各种连接(Natural Join, Outer Join等)的区别》 关系R跟S自然连接后的结果

外连接(outer join)

《各种连接(Natural Join, Outer Join等)的区别》 关系R跟S外连接之后的结果

左外连接(Left Outer Join)

《各种连接(Natural Join, Outer Join等)的区别》 左外连接

感觉Left Join 就是一定要把左边保证了,右边没有的就填NULL

右外连接(Right Outer Join)

《各种连接(Natural Join, Outer Join等)的区别》 右外连接

同样的,感觉Right Join 就是一定要把右边保证了,左边没有的就填NULL

总结

《各种连接(Natural Join, Outer Join等)的区别》 连接

Left join 是 Left outer join 的简称
Right join 是 Right outer join 的简称

在做自然连接时被舍弃的元组叫悬浮元组(dangling tuple)

Left outer join就是保留了左边关系R中的悬浮元组
Right outer join就是保留了右边关系S中的悬浮元组
Outer join就是把悬浮元组保存在结果中,在其他属性上填NULL

    原文作者:祭祀WO菛僾_3930
    原文地址: https://www.jianshu.com/p/01063fa0b40d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞