且仅当满足给定的连接条件时, 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 |
srcmini
评论前必须登录!
注册