引言

在数据库管理系统中,数据集合和数据关联是 SQL 查询中常见的概念。它们是构建复杂查询和分析数据的基石。本文将深入探讨 SQL 中的数据集合和数据关联,包括它们的概念、常见用途以及实际示例。
深入理解 SQL 中的数据集合和数据关联-LMLPHP

首先引入一下数学中的集合

集合的基本概念:

  • 集合:元素的无序组合。通常用大写字母表示,例如 A、B、C。
  • 元素:构成集合的个体。通常用小写字母表示,例如 a、b、c。
  • 子集:若所有的元素都属于另一个集合,则该集合是另一个集合的子集。
  • 交集:包含同时属于两个或多个集合的元素的集合。
  • 并集:包含属于任一或多个给定集合的元素的集合。
  • 补集:与给定集合的差集,包含不属于该集合但属于全集的元素。
  • 互斥:两个集合没有共同元素。

常见符号:

  • ∈ 表示元素属于某个集合。
  • ∉ 表示元素不属于某个集合。
  • ∅ 表示空集。
  • |A| 表示集合 A 中元素的数量,也称为集合的基数。
  • A ⊆ B 表示集合 A 是集合 B 的子集。
  • A ∩ B 表示集合 A 和集合 B 的交集。
  • A ∪ B 表示集合 A 和集合 B 的并集。
  • A’ 或者 A^c 表示集合 A 的补集。

关于数据库中的集合和关联概念

数据集合是指从一个或多个表中检索出来的一组数据。在 SQL 中,可以通过 SELECT 语句来定义数据集合。数据集合可以是简单的单表数据,也可以是多个表的联合结果。

-- 从单表中检索数据
SELECT * FROM employees;

-- 从多个表中检索数据(联合)
SELECT e.*, d.department_name 
FROM employees e 
INNER JOIN departments d ON e.department_id = d.department_id;

数据集合操作

  • 并集(UNION):将两个或多个数据集合合并为一个。
  • 交集(INTERSECT):获取两个数据集合的共同部分。
  • 差集(EXCEPT 或 MINUS):获取一个数据集合中存在而另一个中不存在的数据。

数据关联
数据关联是指将两个或多个表中的数据联系起来,以便于在查询中一起使用。在 SQL 中,可以通过使用连接(Join)来实现数据关联。
深入理解 SQL 中的数据集合和数据关联-LMLPHP

连接类型

  • 内连接(INNER JOIN):获取两个表中的匹配行。
  • 外连接(LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN):获取某个表中的所有行,以及另一个表中的匹配行或空值。
  • 交叉连接(CROSS JOIN):获取两个表的笛卡尔积,即所有可能的组合。

数据关联示例

-- 内连接示例
SELECT e.employee_id, e.last_name, d.department_name 
FROM employees e 
INNER JOIN departments d ON e.department_id = d.department_id;

-- 左连接示例
SELECT e.employee_id, e.last_name, d.department_name 
FROM employees e 
LEFT JOIN departments d ON e.department_id = d.department_id;

04-07 19:33