https://www.cnblogs.com/hu-yewen/p/5821645.html

  首先来看自然连接的定义:

 

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

 

      一个简单的例子,将下列关系R和S进行自然连接:

R:

A    B     C

a    b     c

b    a     d

c    d     e

d    f     g

S:

A    C    D

a    c    d

d    f    g

b    d    g

 

      首先要对两个关系中相同属性组的分量进行比较,即比较R.A,R.C和S.A,S.C。 显然在R中只有第一行和第二行满足条件,因此进行连接得到结果:

A B C D

a b c d

b a d g

      再来看一道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四个列。

 

========================

https://blog.csdn.net/weixin_38134491/article/details/89415925

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

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

 

等值连接

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

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

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

 

自然连接(natural join)

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

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

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

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

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

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

 

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

 

外连接(outer join)

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

 

左外连接(Left Outer Join)

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

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

 

右外连接(Right Outer Join)

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

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

 

总结

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

 

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.cnblogs.com/fnlingnzb-learner/p/6343828.html

相关文章: