数据库连接运算

连接运算

  • 连接(Join):连接一般定义为 R ∞ S A θ B \underset{A\theta B}{R\infty S} AθBRS,其中 ∞ \infty 表示连接运算符, θ \theta θ为比较运算符, A θ B A\theta B AθB是条件表达式。含义是从R和S的笛卡尔积 R × S R\times S R×S中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系θ的元组
  • 等值连接(Equijoin): θ \theta θ为"="的连接运算称为等值连接,它是从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组。
  • 自然连接(Natural Join):自然连接是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是同名的属性组,并在结果中把重复的属性列去掉
  • 外连接(Outer Join):如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值,这种连接就叫做外连接。
  • 左外连接(Left Outer Join或Left Join):如果只把左边关系R中要舍弃的元组保留就叫做左外连接。
  • 右外连接(Right Outer Join或Right Join):如果只把右边关系S中要舍弃的元组保留就叫做右外连接。
  • 交叉连接(Cross Join):交叉连接返回被连接的两个表所有数据行的笛卡尔积,返回的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

交叉连接得到的是两张表数据的乘积,所以以下两种写法是等价的:

SELECT * FROM XS, KC;
SELECT * FROM XS CROSS JOIN KC;

示例:
关系R

A B C
a1 b1 5
a1 b2 6
a2 b3 8
a2 b4 12

关系S

B E
b1 3
b2 7
b3 10
b3 2
b5 2

R与S的等值连接

A R.B C S.B E
a1 b1 5 b1 3
a1 b2 6 b2 7
a2 b3 8 b3 10
a2 b3 8 b3 2

R与S的自然连接

A B C E
a1 b1 5 3
a1 b2 6 7
a2 b3 8 10
a2 b3 18 2

R与S的外连接

A B C E
a1 b1 5 3
a1 b2 6 7
a2 b3 8 10
a2 b3 8 2
a2 b4 12 NULL
NULL b5 NULL 2

R与S的左外连接

A B C E
a1 b1 5 3
a1 b2 6 7
a2 b3 8 10
a2 b3 8 2
a2 b4 12 NULL

R与S的右外连接

A B C E
a1 b1 5 3
a1 b2 6 7
a2 b3 8 10
a2 b3 8 2
NULL b5 NULL 2

你可能感兴趣的:(数据库,数据结构,数据库,sql)