一、定义
- 连接
Join:连接一般定义为 R ∞ S A θ B underset{A theta B}{R infty S} AθBR∞S,其中 ∞ infty ∞ 表示连接运算符, θ theta θ 为比较运算符, A θ B Atheta B AθB 是条件表达式。含义是从 R R R 和 S S S 的笛卡尔积 R × S R times S R×S 中选取 R R R 关系在 A A A 属性组上的值与 S S S 关系在 B B B 属性组上的值满足比较关系 θ θ θ 的元组。 - 等值连接
Equijoin:比较运算符 θ theta θ 为 = = = 的连接运算称为等值连接,它是从关系 R R R 与 S S S 的广义笛卡尔积中选取 A A A、 B B B 属性值相等的那些元组。 - 自然连接
Natural Join:自然连接是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是同名的属性组,并在结果中把重复的属性列去掉。 - 外连接
Outer Join:如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值,这种连接就叫做外连接。 - 左外连接
Left Outer Join或Left Join:如果只把左边关系 R R R 中要舍弃的元组保留就叫做左外连接。 - 右外连接
Right Outer Join或Right Join:如果只把右边关系 S S 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 |

最后
以上就是安静玫瑰最近收集整理的关于数据库连接运算连接运算的全部内容,更多相关数据库连接运算连接运算内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复