连接操作

2025年3月17日 | 阅读 3 分钟

连接操作将来自不同关系的、且满足给定连接条件的相关元组组合起来。它用符号 ⋈ 表示。

示例

EMPLOYEE

EMP_CODEEMP_NAME
101Stephan
102杰克
103Harry

工资

EMP_CODE工资
10150000
10230000
10325000

结果

EMP_CODEEMP_NAME工资
101Stephan50000
102杰克30000
103Harry25000

连接操作的类型


DBMS Join Operation

1. 自然连接

  • 自然连接是 R 和 S 中所有组合的元组集合,这些元组在它们的共同属性名上是相等的。
  • 它用符号 ⋈ 表示。

示例:让我们使用上面的 EMPLOYEE 表和 SALARY 表

输入

输出

EMP_NAME工资
Stephan50000
杰克30000
Harry25000

2. 外连接

外连接操作是连接操作的扩展。它用于处理缺失信息。

示例

EMPLOYEE

EMP_NAMESTREETCITY
RamCivil line孟买
ShyamPark street加尔各答
RaviM.G. Street德里
HariNehru nagar海得拉巴

FACT_WORKERS

EMP_NAMEBRANCH工资
RamInfosys10000
ShyamWipro20000
KuberHCL30000
HariTCS50000

输入

输出

EMP_NAMESTREETCITYBRANCH工资
RamCivil line孟买Infosys10000
ShyamPark street加尔各答Wipro20000
HariNehru nagar海得拉巴TCS50000

外连接主要有三种类型

  1. 左外连接
  2. 右外连接
  3. 全外连接

a. 左外连接

  • 左外连接包含 R 和 S 中所有组合的元组集合,这些元组在它们的共同属性名上是相等的。
  • 在左外连接中,R 中的元组在 S 中没有匹配的元组。
  • 它用符号 ⟕ 表示。

示例:使用上面的 EMPLOYEE 表和 FACT_WORKERS 表

输入

EMP_NAMESTREETCITYBRANCH工资
RamCivil line孟买Infosys10000
ShyamPark street加尔各答Wipro20000
HariNehru street海得拉巴TCS50000
RaviM.G. Street德里NULLNULL

b. 右外连接

  • 右外连接包含 R 和 S 中所有组合的元组集合,这些元组在它们的共同属性名上是相等的。
  • 在右外连接中,S 中的元组在 R 中没有匹配的元组。
  • 它用符号 ⟖ 表示。

示例:使用上面的 EMPLOYEE 表和 FACT_WORKERS 关系

输入

输出

EMP_NAMEBRANCH工资STREETCITY
RamInfosys10000Civil line孟买
ShyamWipro20000Park street加尔各答
HariTCS50000Nehru street海得拉巴
KuberHCL30000NULLNULL

c. 全外连接

  • 全外连接类似于左连接或右连接,但它包含来自两个表的所有行。
  • 在全外连接中,R 中没有匹配 S 中元组的元组,以及 S 中没有匹配 R 中元组的元组,都在它们的共同属性名上。
  • 它用符号 ⟗ 表示。

示例:使用上面的 EMPLOYEE 表和 FACT_WORKERS 表

输入

输出

EMP_NAMESTREETCITYBRANCH工资
RamCivil line孟买Infosys10000
ShyamPark street加尔各答Wipro20000
HariNehru street海得拉巴TCS50000
RaviM.G. Street德里NULLNULL
KuberNULLNULLHCL30000

3. 等值连接

它也被称为内连接。它是最常见的连接。它基于根据相等条件匹配的数据。等值连接使用比较运算符 (=)。

示例

CUSTOMER RELATION

CLASS_ID姓名
1John
2Harry
3Jackson

PRODUCT

PRODUCT_IDCITY
1德里
2孟买
3Noida

输入

输出

CLASS_ID姓名PRODUCT_IDCITY
1John1德里
2Harry2孟买
3Harry3Noida