等值连接和自然连接

来源:互联网 发布:360软件商店 编辑:程序博客网 时间:2024/04/27 15:11

 

等值连接:“=”的连接

 

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

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

 

表:Table_1

ABC
1a1b12
2a1b24
3a2b36
4a2b48

表:Table_2

BD
1b15
2b26
3b37
4b38

 

等值连接

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

At1.BCt2.BD
1a2b36b26
2a2b48b38

 

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

At1.BCt2.BD
1a1b12b15
2a1b24b26
3a2b36b37
4a2b36b38

自然连接

ABCD
1a1b125
2a1b246
3a2b367
4a2b368

 

即:(如果看不到图,请参照相册《等值连接和自然连接》)

 

 

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

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

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

原创粉丝点击