SQL 等值连接(内连接)、自然连接(Out join,Left join,Right join)的区别

连接join 是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。

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

 

等值连接

关系R与关系S 等值连接后的结果

 

自然连接(natural join)

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

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

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

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

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

 

-------------------------------------------------------

 

外连接(outer join)

 

左外连接(Left Outer Join)

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

 

右外连接(Right Outer Join)

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

 

总结

 

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

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

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

 

原文:https://www.jianshu.com/p/01063fa0b40d

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值