SQL技巧:等值连接与自然连接的区别

  • 等值连接:inner join
  • 自然连接:  out join, left join,right join

等值连接

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

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

等值连接

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

 自然连接

自然连接:是一种特殊的等值连接,它要求两个关系进行比较的分量必须是相同的属性组,并且在结果集中将重复属性列去掉。

2008年软件设计师考试的题目:若关系R、S如下所示,则R与S自然连接后的属性列数和元组个数分别为()

R:

A B C D

a b c d

a c d c

a d g f

a b g f

 

S:

C D

c d

g f

分析,首先进行比较,容易得出R中有三个元组(即三行,1、3、4行)符合条件,所以元组个数为3,再然后去掉重复的列,显然仍然剩下A、B、C、D四个列。

自然连接(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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章