當且僅當滿足給定的連線條件時,連線操作才組合來自不同關係的相關元組。 它用?
符號來表示。
範例:
員工(EMPLOYEE
)表 -
EMP_CODE | EMP_NAME |
---|---|
101 | Stephan |
102 | Jack |
103 | Harry |
薪水(SALARY
)表 -
EMP_CODE | SALARY |
---|---|
101 | 50000 |
102 | 30000 |
103 | 25000 |
操作符號:
(EMPLOYEE ? SALARY)
輸出結果如下:
EMP_CODE | EMP_NAME | SALARY |
---|---|---|
101 | Stephan | 50000 |
102 | Jack | 30000 |
103 | Harry | 25000 |
連線操作的型別:
自然連線是R
和S
中所有組合的元組集,它們的公共屬性名稱相等。它用符號?
表示。
範例 :使用上面的EMPLOYEE
表和SALARY
表:
輸入:
∏EMP_NAME, SALARY (EMPLOYEE ? SALARY)
輸出結果如下 -
EMP_NAME | SALARY |
---|---|
Stephan | 50000 |
Jack | 30000 |
Harry | 25000 |
外連線操作是連線操作的擴充套件,它用於處理缺失的資訊。
範例:
EMPLOYEE
表的結構和資料如下 -
EMP_NAME | STREET | CITY |
---|---|---|
Ram | Civil line | Mumbai |
Shyam | Park street | Kolkata |
Ravi | M.G. Street | Delhi |
Hari | Nehru nagar | Hyderabad |
FACT_WORKERS
表的結構和資料如下 -
EMP_NAME | BRANCH | SALARY |
---|---|---|
Ram | Infosys | 10000 |
Shyam | Wipro | 20000 |
Kuber | HCL | 30000 |
Hari | TCS | 50000 |
輸入 -
(EMPLOYEE ? FACT_WORKERS)
EMP_NAME | STREET | CITY | BRANCH | SALARY |
---|---|---|---|---|
Ram | Civil line | Mumbai | Infosys | 10000 |
Shyam | Park street | Kolkata | Wipro | 20000 |
Hari | Nehru nagar | Hyderabad | TCS | 50000 |
外連線基本上有三種型別:
A. 左外連線:
R
和S
中所有組合的元組集,它們的公共屬性名稱相等。R
中的元組但在S
中沒有匹配的元組。?
表示。範例:使用上面的EMPLOYEE
表和FACT_WORKERS
表
輸入 -
EMPLOYEE ? FACT_WORKERS
輸出 -
EMP_NAME | STREET | CITY | BRANCH | SALARY |
---|---|---|---|---|
Ram | Civil line | Mumbai | Infosys | 10000 |
Shyam | Park street | Kolkata | Wipro | 20000 |
Hari | Nehru street | Hyderabad | TCS | 50000 |
Ravi | M.G. Street | Delhi | NULL | NULL |
B. 右外連線:
R
和S
中所有組合的元組集,它們的公共屬性名稱相等。S
中的元組在R
中沒有匹配的元組。?
表示。輸入 -
EMPLOYEE ? FACT_WORKERS
輸出 -
EMP_NAME | BRANCH | SALARY | STREET | CITY |
---|---|---|---|---|
Ram | Infosys | 10000 | Civil line | Mumbai |
Shyam | Wipro | 20000 | Park street | Kolkata |
Hari | TCS | 50000 | Nehru street | Hyderabad |
Kuber | HCL | 30000 | NULL | NULL |
C. 全外連線:
R
中的元組在S
中沒有匹配的元組,S
中的元組在其公共屬性名稱中的R
中沒有匹配的元組。?
表示。範例: 使用上面的EMPLOYEE
表和FACT_WORKERS
表
輸入 -
EMPLOYEE ? FACT_WORKERS
輸出 -
EMP_NAME | STREET | CITY | BRANCH | SALARY |
---|---|---|---|---|
Ram | Civil line | Mumbai | Infosys | 10000 |
Shyam | Park street | Kolkata | Wipro | 20000 |
Hari | Nehru street | Hyderabad | TCS | 50000 |
Ravi | M.G. Street | Delhi | NULL | NULL |
Kuber | NULL | NULL | HCL | 30000 |
它也被稱為內連線,這是最常見的加入。 它基於相等條件的匹配資料。相等連線使用比較運算子(=)。
範例:
CUSTOMER
表 -
CLASS_ID | NAME |
---|---|
1 | John |
2 | Harry |
3 | Jackson |
PRODUCT
表 -
PRODUCT_ID | CITY |
---|---|
1 | Delhi |
2 | Mumbai |
3 | Noida |
輸入 -
CUSTOMER ? PRODUCT
輸出 -
CLASS_ID | NAME | PRODUCT_ID | CITY |
---|---|---|---|
1 | John | 1 | Delhi |
2 | Harry | 2 | Mumbai |
3 | Harry | 3 | Noida |