且仅当满足给定的连接条件时, Join操作才会组合来自不同关系的相关元组。用?表示。
例:
【DBMS 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中所有组合的元组集合, 它们的公共属性名称相同。
- 用?表示。
输入:
∏EMP_NAME, SALARY (EMPLOYEE ? SALARY)
输出:
EMP_NAME | 薪水 |
---|---|
Stephan | 50000 |
Jack | 30000 |
Harry | 25000 |
外部联接操作是联接操作的扩展。它用于处理丢失的信息。
例:
雇员
EMP_NAME | 街 | 市 |
---|---|---|
Ram | 民用线 | Mumbai |
Shyam | 公园街 | Kolkata |
Ravi | 硕士街 | Delhi |
Hari | Nehru nagar | Hyderabad |
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
EMP_NAME | 街 | 市 | 科 | 薪水 |
---|---|---|---|---|
Ram | 民用线 | Mumbai | Infosys | 10000 |
Shyam | 公园街 | Kolkata | Wipro | 20000 |
Hari | 尼赫鲁街 | Hyderabad | TCS | 50000 |
Ravi | 硕士街 | Delhi | NULL | NULL |
- 右外连接包含R和S中所有组合的元组集合, 它们的公共属性名称相同。
- 在右外部联接中, S中的元组在R中没有匹配的元组。
- 用?表示。
输入:
EMPLOYEE ? FACT_WORKERS
输出:
EMP_NAME | 科 | 薪水 | 街 | 市 |
---|---|---|---|---|
Ram | Infosys | 10000 | Civil line | Mumbai |
Shyam | Wipro | 20000 | 公园街 | Kolkata |
Hari | TCS | 50000 | 尼赫鲁街 | Hyderabad |
Kuber | HCL | 30000 | NULL | NULL |
- 完全外部联接类似于左联接或右联接, 但它包含两个表中的所有行。
- 在完全外部联接中, R的公共属性名称中的元组在S中没有匹配的元组, 而S的元组在R中没有匹配的元组。
- 用?表示。
输入:
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 |
也称为内部联接。这是最常见的连接。它根据相等条件基于匹配的数据。等值联接使用比较运算符(=)。
例:
客户关系
班级号 | 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 |
推荐阅读
- DBMS键key详解
- DBMS join依赖
- DBMS完整性约束
- DBMS推断规则(IR)
- DBMS索引顺序访问方法(ISAM)
- DBMS包含依赖性
- DBMS Heap文件组织
- DBMS和散列原理解析
- DBMS哈希文件组织