一、运算前提

  • 差、并、交:要求 R 和 S 具有相同的属性(列)(列数相同、对应列数据类型一致)。

  • 笛卡尔积无属性结构要求,两个表结构可完全不同。


二、四种传统集合运算

① 差运算(R - S)

  • 定义:由属于 R 但不属于 S 的行组成,即在 R 中去掉 R 和 S 的公共行。

  • 结果特征:只保留 R 独有的记录。

② 并运算(R ∪ S)

  • 定义:由属于 R 或 S 的行合并成新表,自动去掉重复行。

  • 结果特征:包含 R 和 S 所有不重复的记录。

③ 交运算(R ∩ S)

  • 定义:抽取 R 和 S 中完全相同的行,得到新表并去掉重复行。

  • 等价公式R ∩ S = R - (R - S)

  • 结果特征:只保留 R 和 S 共有的记录。

④ 笛卡尔积(R × S)

  • 定义:将 R 的每一行,分别与 S 的每一行进行拼接组合,得到新表。

  • 结果维度

    • 新表行数 = R 的行数 × S 的行数

    • 新表列数 = R 的列数 + S 的列数

  • 结果特征:全排列组合,无筛选条件,是连接查询的基础。


三、核心对比速记

运算类型

结构要求

核心逻辑

结果规模

差 R-S

必须相同

R 中去掉与 S 重复的行

≤ R 行数

并 R∪S

必须相同

合并 R、S 并去重

≤ R+S 行数

交 R∩S

必须相同

保留 R、S 共有的行

≤ min (R,S) 行数

笛卡尔积 R×S

无要求

所有行两两拼接

= R 行数 × S 行数