当前位置: 首页 > 教程 > 数据库管理系统 >

DBMS连接操作

精华
小牛编辑
197浏览
2023-03-14

当且仅当满足给定的连接条件时,连接操作才组合来自不同关系的相关元组。 它用符号来表示。

示例:

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