在关系代数中,连接运算是由一个笛卡尔积运算和一个选取运算构成的。连接的全部意义在于在水平方向上合并两个数据集合(通常是表)。下面是几种常用的连接类型:
| 连接类型 | 定义 | 图示 | 例子 |
| 内连接 | 只连接匹配的行 | select A.c1,B.c2 from A join B on A.c3 = B.c3; | |
| 左外连接 | 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行)以及右边表中全部匹配的行 | select A.c1,B.c2 from A left join B on A.c3 = B.c3; | |
| 右外连接 | 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行)以及左边表中全部匹配的行 | select A.c1,B.c2 from A right join B on A.c3 = B.c3; | |
| 全外连接 | 包含左、右两个表的全部行,不管在另一边的表中是否存在与它们匹配的行 | select A.c1,B.c2 from A full join B on A.c3 = B.c3; | |
| (theta)连接 | 使用等值以外的条件来匹配左、右两个表中的行 | select A.c1,B.c2 from A join B on A.c3 != B.c3; | |
| 交叉连接 | 生成笛卡尔积——它不使用任何匹配或者选取条件,而是直接将一个数据源中的每个行与另一个数据源的每个行一一匹配 | select A.c1,B.c2 from A,B; |
关系代数连接运算解析
本文介绍了关系代数中的连接运算,包括内连接、左外连接、右外连接、全外连接、θ连接和交叉连接等类型,并给出了每种类型的定义及SQL示例。
4308

被折叠的 条评论
为什么被折叠?



