且仅当满足给定的连接条件时, Join操作才会组合来自不同关系的相关元组。用⋈表示。
例:
雇员
EMP_CODE | EMP_NAME |
---|---|
101 | Stephan |
102 | Jack |
103 | Harry |
薪水
EMP_CODE | 薪水 |
---|---|
101 | 50000 |
102 | 30000 |
103 | 25000 |
Operation: (EMPLOYEE ⋈ SALARY)
结果:
EMP_CODE | EMP_NAME | 薪水 |
---|---|---|
101 | Stephan | 50000 |
102 | Jack | 30000 |
103 | Harry | 25000 |
联接操作的类型
1.自然加入:
- 自然联接是R和S中所有组合的元组集合, 它们的公共属性名称相同。
- 用⋈表示。
示例:让我们使用上面的EMPLOYEE表和SALARY表:
输入:
∏EMP_NAME, SALARY (EMPLOYEE ⋈ SALARY)
输出:
EMP_NAME | 薪水 |
---|---|
Stephan | 50000 |
Jack | 30000 |
Harry | 25000 |
2.外加入:
外部联接操作是联接操作的扩展。它用于处理丢失的信息。
例:
雇员
EMP_NAME | 街 | 市 |
---|---|---|
Ram | 民用线 | Mumbai |
Shyam | 公园街 | Kolkata |
Ravi | 硕士街 | Delhi |
Hari | Nehru nagar | Hyderabad |
FACT_WORKERS
EMP_NAME | 科 | 薪水 |
---|---|---|
Ram | Infosys | 10000 |
Shyam | Wipro | 20000 |
Kuber | HCL | 30000 |
Hari | TCS | 50000 |
输入:
(EMPLOYEE ⋈ FACT_WORKERS)
输出:
EMP_NAME | 街 | 市 | 科 | 薪水 |
---|---|---|---|---|
Ram | 民用线 | Mumbai | Infosys | 10000 |
Shyam | Park street | Kolkata | Wipro | 20000 |
Hari | Nehru nagar | Hyderabad | TCS | 50000 |
外部联接基本上分为三种类型:
- 左外连接
- 右外连接
- 完全外部联接
一种。左外连接:
- 左外部联接包含R和S中所有组合的元组集合, 它们的公共属性名称相同。
- 在左外部联接中, R中的元组没有S中的匹配元组。
- 用⟕表示。
示例:使用上面的EMPLOYEE表和FACT_WORKERS表
输入:
EMPLOYEE ⟕ FACT_WORKERS
EMP_NAME | 街 | 市 | 科 | 薪水 |
---|---|---|---|---|
Ram | 民用线 | Mumbai | Infosys | 10000 |
Shyam | 公园街 | Kolkata | Wipro | 20000 |
Hari | 尼赫鲁街 | Hyderabad | TCS | 50000 |
Ravi | 硕士街 | Delhi | NULL | NULL |
b。右外连接:
- 右外连接包含R和S中所有组合的元组集合, 它们的公共属性名称相同。
- 在右外部联接中, S中的元组在R中没有匹配的元组。
- 用⟖表示。
示例:使用上面的EMPLOYEE表和FACT_WORKERS关系
输入:
EMPLOYEE ⟖ FACT_WORKERS
输出:
EMP_NAME | 科 | 薪水 | 街 | 市 |
---|---|---|---|---|
Ram | Infosys | 10000 | Civil line | Mumbai |
Shyam | Wipro | 20000 | 公园街 | Kolkata |
Hari | TCS | 50000 | 尼赫鲁街 | Hyderabad |
Kuber | HCL | 30000 | NULL | NULL |
C。完全外部联接:
- 完全外部联接类似于左联接或右联接, 但它包含两个表中的所有行。
- 在完全外部联接中, R的公共属性名称中的元组在S中没有匹配的元组, 而S的元组在R中没有匹配的元组。
- 用⟗表示。
示例:使用上面的EMPLOYEE表和FACT_WORKERS表
输入:
EMPLOYEE ⟗ FACT_WORKERS
输出:
EMP_NAME | 街 | 市 | 科 | 薪水 |
---|---|---|---|---|
Ram | 民用线 | Mumbai | Infosys | 10000 |
Shyam | Park street | Kolkata | Wipro | 20000 |
Hari | Nehru street | Hyderabad | TCS | 50000 |
Ravi | 硕士街 | Delhi | NULL | NULL |
Kuber | NULL | NULL | HCL | 30000 |
3.平等加入:
也称为内部联接。这是最常见的连接。它根据相等条件基于匹配的数据。等值联接使用比较运算符(=)。
例:
客户关系
班级号 | NAME |
---|---|
1 | John |
2 | Harry |
3 | Jackson |
产品
PRODUCT_ID | 市 |
---|---|
1 | Delhi |
2 | Mumbai |
3 | Noida |
输入:
CUSTOMER ⋈ PRODUCT
输出:
班级号 | NAME | PRODUCT_ID | 市 |
---|---|---|---|
1 | John | 1 | Delhi |
2 | Harry | 2 | Mumbai |
3 | Harry | 3 | Noida |
评论前必须登录!
注册