DBMS連接操作

當且僅當滿足給定的連接條件時,連接操作才組合來自不同關係的相關元組。 它用符號來表示。

示例:

員工(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

連接操作的類型:

1.自然連接

自然連接是RS中所有組合的元組集,它們的公共屬性名稱相等。它用符號表示。
示例 :使用上面的EMPLOYEE表和SALARY表:

輸入:

∏EMP_NAME, SALARY (EMPLOYEE ⋈ SALARY)

輸出結果如下 -

EMP_NAME SALARY
Stephan 50000
Jack 30000
Harry 25000

2. 外部連接

外連接操作是連接操作的擴展,它用於處理缺失的資訊。

示例:

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. 左外連接:

  • 左外連接包含RS中所有組合的元組集,它們的公共屬性名稱相等。
  • 在左外連接中,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. 右外連接:

  • 右外連接包含RS中所有組合的元組集,它們的公共屬性名稱相等。
  • 在右外連接中,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

3. 相等連接

它也被稱為內連接,這是最常見的加入。 它基於相等條件的匹配數據。相等連接使用比較運算符(=)。

示例:

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

上一篇: DBMS關係代數 下一篇: DBMS完整性約束