MySQL 知识点复习- 5. UNION

基本语法结构

sql 复制代码
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
  1. 列数要求

    所有 SELECT 语句的列数必须完全一致,否则会触发语法错误。

  2. 列名规则

    最终结果集的列名以第一个 SELECT 语句中的列名为准,后续语句的列名不影响输出。

UNION 与 UNION ALL 的区别

  • UNION:合并结果集并自动去除重复记录。
  • UNION ALL:合并结果集并保留所有记录(包括重复项)。

示例 1: 使用 UNION 合并用户和产品名称
sql 复制代码
SELECT name FROM users
UNION
SELECT product_name FROM products;

结果集示例

name
Alice
Bob
Laptop
Phone
示例 2: 使用 UNION ALL 合并员工薪资(含重复)
sql 复制代码
SELECT name, salary FROM employees
UNION ALL
SELECT name, salary FROM contractors;

结果集示例

name salary
Alice 5000
Bob 6000
Alice 5000
Carol 5500

结果集排序规则

  • ORDER BY 需置于最后一个 SELECT 语句后,对整个结果集生效。
示例 3: 合并学生和教师年龄并降序排序
sql 复制代码
SELECT name, age FROM students
UNION
SELECT name, age FROM teachers
ORDER BY age DESC;

结果集示例

name age
Bob 45
Alice 30
Carol 25
关键注意事项
  • 所有 SELECT 语句的列数必须一致。
  • 对应列的数据类型应兼容。
  • UNION 会隐式去重,可能增加性能开销;明确不需要去重时优先使用 UNION ALL
相关推荐
憧憬成为web高手6 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
yio_yin12 小时前
Spring事务管理(数据一致性)
数据库·sql·spring
Csvn14 小时前
📊 SQL 入门 Day 9:CTE(公用表表达式)— 让 SQL 像写代码一样优雅
后端·sql
虹科网络安全14 小时前
艾体宝新闻|从 SQL 注入到服务器接管:CVE-2026-57517 暴露 Web 管理面板的供应链与安全编码风险
服务器·前端·sql
Databend16 小时前
用 QUALIFY 写出更清晰的窗口函数 SQL
数据库·sql·数据分析
难寻安逸17 小时前
DVWA-使用sqlmap 进行sql注入过程
数据库·sql·网络安全
Csvn1 天前
📊 SQL 入门 Day 8:集合操作 — 用 SQL 做数学里的"并交差"
后端·sql
Irene19911 天前
大数据开发的常见实践:把 SQL 直接写在 Shell 脚本里 ER图 数据血缘
sql·数据血缘·er
川石课堂软件测试1 天前
安全测试|常见SQL注入攻击方式、实例及预防
服务器·数据库·sql·功能测试·测试工具·安全·单元测试
qq_366086221 天前
sql 查询中关于 null 值判断的问题
数据库·sql