等值连接与自然连接

来源:互联网 发布:杰视帮和凤凰美工 编辑:程序博客网 时间:2024/06/03 00:05

等值连接:“=”的连接

 

自然连接:在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉。即如果R与S具有相同的属性组Y,则自然连接可记作:
     R*S={t r⌒ts |tr∈R∧ts∈S∧tr[Y]=ts[Y]}

自然连接是在广义笛卡尔积R×S中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。

 

表:Table_1

 

ABC1a1b122a1b243a2b364a2b48

表:Table_2

 

BD1b152b263b374b38

 

等值连接

select *
from Table_1 t1, Table_2 t2
where t1.C = t2.D

 

At1.BCt2.BD1a2b36b262a2b48b38

 

select *
from Table_1 t1, Table_2 t2
where t1.B = t2.B

 

At1.BCt2.BD1a1b12b152a1b24b263a2b36b374a2b36b38

 

自然连接

 

ABCD1a1b1252a1b2463a2b3674a2b368

 

 结合上例,我们可以看出等值连接与自然连接的区别:

     1. 等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。如上例R中的C列和S中的D列可进行等值连接,但因为属性名不同,不能进行自然连接。

     2. 等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。如上例R中的B列和S中的B列进行等值连接时,结果有两个重复的属性列B,而进行自然连接时,结果只有一个属性列B。