admin 管理员组

文章数量: 1086019


2024年3月12日发(作者:pycharm和anaconda的区别)

笛卡尔积、等值连接、自然连接的联系与区别

虽然naturaljoin(自然连接)实际上的用的比较少,但实际上这个连接是非常有用的,

若能经常使用一下,实际上是非常方便的。

自然连接是在两张表中寻找那些数据类型和列名都相同的字段,然后自动地将他们连

接起来,并返回所有符合条件按的结果。

来看一下自然连接的例子。

,

Fromempnaturaljoindept;

这里我们并没有指定连接的条件,实际上oracle为我们自作主张的将,emp中的

deptno和dept中的deptno做了连接。

也就是实际上相当于

,

=;

因为这两张表的这两个字段deptno的类型个名称完全相同。所以使用naturaljoin

时被自然的连接在一起了。

另外:

1.如果做自然连接的两个表的有多个字段都满足有相同名称个类型,那么他们会被作

为自然连接的条件。

2.如果自然连接的两个表仅是字段名称相同,但数据类型不同,那么将会返回一个错

误。

3.由于oracle中可以进行这种非常简单的naturaljoin,我们在设计表时,应该尽量在

不同表中具有相同含义的字段使用相同的名字和数据类型。以方便以后使用naturaljoin

最后我们在前面举的例子都得到以下的结果:

SQL>,

2Fromempnaturaljoindept;

ENAMEDNAME

——————–—————-

SMITHRESEARCH

ALLENSALES

WARDSALES

JONESRESEARCH

MARTINSALES

BLAKESALES

CLARKACCOUNTING

SCOTTRESEARCH

KINGACCOUNTING

TURNERSALES

ADAMSRESEARCH

JAMESSALES

FORDRESEARCH

MILLERACCOUNTING

内连接与等值连接是一回事情。

经常有人会问到,oma,=

,=.有什么区别,哪个效率更高一些。

实际上一回事情了。只是内连接是由SQL1999规则定的书写方式。两个说的是一码

事。

等值连接

等值连接是条件连接在连接运算符为“=”号时的特例。

它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组

自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属

性组,并且在结果中把重复的属性列去掉

等值连接表示为RA=BS,自然连接表示为RS;自然连接是除去重复属性的等值连接。

两者之间的区别和联系如下:

1、自然连接一定是等值连接,但等值连接不一定是自然连接。等值连接不把重复的属

性除去;而自然连接要把重复的属性除去。

2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是

公共属性。

3、等值连接不把重复的属性除去;而自然连接要把重复的属性除去。


本文标签: 连接 等值 字段 要求 结果