数据库管理系统连接:THETA 连接、内连接、外连接、等值连接类型

⚡ 智能摘要

在数据库管理系统中,连接(JOIN)是一种二元操作,它使用主键和外键将两个或多个表中的行合并在一起。连接分为内连接和外连接。内连接只返回匹配的行,而外连接则保留不匹配的行,并将不匹配的行用空值填充。

  • 🔗 核心宗旨: 连接操作根据连接条件将相关表合并成一个结果集。
  • 🎯 内部联接: 仅返回两个表中均满足条件的行;默认连接类型。
  • 📐 Theta 和 EQUI: theta 连接可以使用任何比较运算符;EQUI 连接仅使用相等性运算符。
  • 🔄 自然连接: 匹配名称相同的属性,并删除重复的列。
  • ⬅️ 左外连接: 保留左表中的每一行,如果右表中没有匹配项,则填充 null。
  • ➡️ 右外连接: 保留右表中的每一行,如果左表中没有匹配项,则填充 null。
  • 🌐 完全外部连接: 无论匹配与否,都保留两个表中的所有行。

数据库管理系统中的左连接和右连接

数据库管理系统中的连接(JOIN)是什么?

加入 DBMS 连接是一种二元运算,允许您在单个语句中组合连接结果和选择条件。创建连接条件的目的是合并来自两个或多个表的数据。这些表通过它们的主键关联起来。 外键.

连接类型

DBMS 中主要有两种类型的连接:

  1. 内连接:Theta、Natural、EQUI
  2. 外连接:左连接、右连接、全连接

下表预览了所有连接类型,然后通过示例对每种类型进行解释。

加入 Returns & Exchanges 不匹配的行
内在(Theta / EQUI / 自然) 两个表中均符合条件的行 下降
左外 所有左侧行加上匹配项 左侧保持,右侧为空
右外 所有右行加匹配 右侧保持空白,左侧为空
全外层 两个表中的所有行 两者均不保留,缺失处为空

内部联接

内部联接 用于返回两个表中满足给定条件的行。它是最常用的连接操作,可以被视为默认的连接类型。

内连接(或等值连接)是一种基于比较器的连接,它在连接谓词中使用相等性比较。但是,如果使用其他比较运算符(例如“>”),则不能称为等值连接。内连接进一步分为三种子类型:

  • Theta 加入
  • 自然连接
  • 加入EQUI

Theta 加入

Theta 加入 允许您根据 theta 表示的条件合并两个表。theta 连接适用于所有比较运算符。它用符号表示。 θJOIN 操作的一般情况称为 theta 连接。

语法:

A ⋈θ B

theta 连接可以使用选择条件中的任何条件。

请考虑下表。

表A 表B.
列1 列2 列1 列2
1 1 1 1
1 2 1 3

例如:

A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A.列 2 > B.列 2 (B)
列1 列2
1 2

加入EQUI

加入EQUI 当 theta 连接仅使用等价条件时,就会发生这种情况。EQUI 连接是实现起来最困难的操作之一。 RDBMS这也是关系数据库管理系统可能出现性能问题的原因之一。

例如:

A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A.第 2 列 = B.第 2 列 (B)
列1 列2
1 1

自然连接(⋈)

自然加入 不使用任何比较运算符。在这种类型的连接中,属性必须具有相同的名称和域。在自然连接中,两个关系之间至少应该有一个公共属性。

它对两个关系中出现的属性进行选择,形成相等关系,并消除重复属性。

计费示例: 请看以下两张表格。

C
序号 广场
2 4
3 9
D
序号 鱼块
2 8
3 18
C ⋈ D
C⋈D
序号 广场 鱼块
2 4 8
3 9 18

外连接

An 外连接 并不要求两个连接表中的每条记录都有匹配的记录。在这种类型的连接中,即使不存在其他匹配的记录,表中也会保留每条记录。外连接的三种类型是:

  • 左外连接
  • 右外连接
  • 完全外部加入

左外连接(A⟕B)

左外连接 返回左侧表格中的所有行,即使右侧表格中没有找到匹配的行。如果右侧表格中没有找到匹配的记录,则返回 null。

左外连接

请看以下两张表格。

A
序号 广场
2 4
3 9
4 16
B
序号 鱼块
2 8
3 18
5 75
A Left Outer Join B
A ⟕ B
序号 广场 鱼块
2 4 8
3 9 18
4 16

右外连接 (A ⟖ B)

右外连接 返回右侧表中的所有列,即使左侧表中没有找到匹配的行。如果左侧表中没有匹配项,则返回 null。右外连接与左连接相反。

右外连接

A Right Outer Join B
A ⟖ B
序号 鱼块 广场
2 8 4
3 18 9
5 75

全外连接 (A ⟗ B)

在一个 完全外部加入,无论匹配条件如何,来自两个关系的所有元组都包含在结果中。

计费示例:

A Full Outer Join B
A ⟗ B
序号 广场 鱼块
2 4 8
3 9 18
4 16
5 75

常见问题

内连接仅返回两个表中匹配的行。外连接除了返回匹配的行外,还会保留来自一个或两个表中的不匹配行,并将缺失的行填充为 NULL 值。

Theta 连接可以使用任何比较运算符,例如大于或小于。EQUI 连接是仅限于相等运算符的 Theta 连接,因此它只匹配相等的值。

两者都基于相等性进行匹配,但自然连接会自动匹配同名列并删除重复列。EQUI 连接则显式指定条件并保留两列。

是的。根据模式和问题,AI 可以选择连接类型和键,例如使用左连接来保留没有订单的客户。请确认结果,因为错误的连接会改变行数。

是的。人工智能可以发现连接键在一侧不唯一,导致多对多关系爆发,并建议先添加条件或进行聚合,以便每个匹配项只被计算一次。

总结一下这篇文章: