文章目录关系代数五大基本运算全解析什么是关系代数五大基本运算详解一张表总结为什么这5种是基本的写在最后关系代数五大基本运算全解析关系代数是关系数据库的理论基石而其中5种基本运算更是重中之重——所有其他运算连接、交、除法等都可以由它们推导而来。今天就来一次性搞懂它们什么是关系代数简单来说关系代数是一套对**关系即数据库中的表**进行操作的数学语言。它定义了一组运算规则让我们能够从已有表中推导出新的表。而在这套体系中有5种运算被定义为基本运算因为它们是不可再分的——其他所有运算都可以用这5种的组合来表达。五大基本运算详解并Union∪做什么把两个表的所有行合并到一起去掉重复的行。前提条件两个表必须相容——列数相同且对应列的数据类型一致。生活类比把两个班级的花名册合在一起同名同学只保留一个。示例表R{(1, 张三), (2, 李四)}表S{(2, 李四), (3, 王五)}R ∪ S {(1, 张三), (2, 李四), (3, 王五)}注意并运算会自动去重这是集合论的基本要求。差Difference−做什么从表R中去掉那些也出现在表S中的行只保留R独有的。前提条件同样要求两表相容。生活类比A班花名册减去B班花名册得到只在A班、不在B班的同学。示例R − S {(1, 张三)}差运算不满足交换律R − S ≠ S − R。广义笛卡尔积Cartesian Product×做什么将两个表的每一行两两配对生成所有可能的组合。结果规模如果R有m行、S有n行则R × S有m × n行列数则是两表列数之和。生活类比把3件上衣和2条裤子搭配总共能搭配出6套。示例R有3行2列S有2行3列R × S → 6行5列笛卡尔积本身很少直接使用结果往往太大且无意义但它是**连接Join**运算的基础——连接本质上就是先做笛卡尔积再筛选。投影Projectionπ做什么从表中选取指定的列丢弃其余列并消除重复行。操作方向纵向对列操作。生活类比从一份包含姓名、年龄、性别、地址的员工表中只提取姓名和年龄两列。示例学生表(学号, 姓名, 年龄, 性别)π(学生表) → 只保留姓名和年龄投影后如果出现重复行会自动去重。选择Selectionσ做什么从表中筛选出满足条件的行保留所有列。操作方向横向对行操作。生活类比从全班花名册中挑出所有年龄大于20岁的同学。示例学生表(学号, 姓名, 年龄)σ(学生表) → 只保留年龄20的行选择运算不会改变表的列结构只影响行数。一张表总结运算符号操作对象核心作用并∪两个表合并去重差−两个表求差集笛卡尔积×两个表全组合投影π单个表列纵向筛选选择σ单个表行横向筛选为什么这5种是基本的因为其他常见运算都可以用它们来表达交∩R ∩ S R − (R − S)自然连接⋈先做笛卡尔积再用选择运算筛选匹配行最后用投影去掉重复列θ连接笛卡尔积 选择这就是为什么教科书把这5种定义为基本运算——它们是关系代数的最小完备集。写在最后掌握这5种基本运算不仅能帮你理解SQL背后的原理SELECT对应选择SELECT列对应投影UNION对应并EXCEPT对应差CROSS JOIN对应笛卡尔积更是深入学习数据库查询优化的基础。