数据库关系代数 - 连接操作
前言
本文整理数据库关系代数中所有连接操作,包含定义、运算规则、示例、区别,适合期末复习、面试背诵,简洁无废话,知识点全覆盖。
一、基础概念
- 连接:从两个关系的笛卡尔积中选取满足条件的元组
- 所有连接的基础:笛卡尔积
- 内连接:只保留匹配成功的元组
- 外连接:保留所有元组,不匹配用NULL填充
二、详细连接操作
1. 笛卡尔积 (Cartesian Product)
- 符号 :R×SR \times SR×S
- 定义:无条件将两个关系的元组进行全组合
- 特点:无筛选、无去重,结果行数 = R行数 × S行数
- 适用:所有连接的基础操作
2. θ-连接 (θ-Join)
- 符号 :R⋈conditionSR \bowtie_{condition} SR⋈conditionS
- 定义:笛卡尔积 + 条件筛选
- 条件:=、>、<、≥、≤、≠
- 分类 :
- 等值连接(条件为=)
- 非等值连接(条件为>、<等)
- 特点:保留所有列,不去重
3. 等值连接 (Equijoin)
- 定义 :θ-连接的特例,条件仅为属性相等
- 特点 :
- 按属性值相等匹配
- 保留重复列
4. 自然连接 (Natural Join)
- 符号 :R⋈SR \bowtie SR⋈S
- 定义:特殊的等值连接
- 规则 :
- 自动匹配同名同类型属性
- 按等值连接
- 删除重复列
- 地位:实际使用最频繁的连接
5. 左外连接 (Left Outer Join)
- 符号 :R⋈leftSR \bowtie_{left} SR⋈leftS
- 规则 :
- 保留左表全部元组
- 右表能匹配则显示,不能匹配填NULL
- 适用:以左表数据为准,不丢失任何左表记录
6. 右外连接 (Right Outer Join)
- 符号 :R⋈rightSR \bowtie_{right} SR⋈rightS
- 规则 :
- 保留右表全部元组
- 左表能匹配则显示,不能匹配填NULL
- 适用:以右表数据为准,不丢失任何右表记录
7. 全外连接 (Full Outer Join)
- 符号 :R⋈fullSR \bowtie_{full} SR⋈fullS
- 规则 :
- 保留左表 + 右表所有元组
- 不匹配的部分统一填NULL
三、核心区别对比表
| 连接类型 | 筛选条件 | 重复列 | 不匹配元组 |
|---|---|---|---|
| 笛卡尔积 | 无 | 保留 | 全部保留 |
| θ-连接 | 任意条件 | 保留 | 丢弃 |
| 等值连接 | 属性相等 | 保留 | 丢弃 |
| 自然连接 | 同名属性相等 | 删除 | 丢弃 |
| 左外连接 | 等值匹配 | 保留 | 保留左表 |
| 右外连接 | 等值匹配 | 保留 | 保留右表 |
| 全外连接 | 等值匹配 | 保留 | 全部保留 |
四、总结
- 笛卡尔积:全组合,无筛选
- θ-连接:通用条件连接
- 等值连接:只按相等匹配,保留重复列
- 自然连接:等值连接 + 去重,最常用
- 左外连接:左表全保留
- 右外连接:右表全保留
- 全外连接:两边都保留
一句话记忆 :
内连接看匹配,外连接看保留;自然连接自动去重,等值连接保留同名列。