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
相关推荐
唐青枫2 天前
MySQL JSON 实战详解:从存储、查询、更新到 JSON_TABLE 与索引
sql·mysql
掉头发的王富贵4 天前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
zzzzzz3109 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
云技纵横11 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
BD_Marathon13 天前
SQL学习指南——视图
数据库·sql
2601_9620725513 天前
李梦娇常识4600问|题库|打印版
sql·华为od·华为·c#·华为云·.net·harmonyos
HackTwoHub13 天前
Sqli-Scanner SQL注入SKILL自动化挖掘SQL注入,零依赖自动化SQL注入挖掘,赏金猎人
数据库·人工智能·sql·web安全·网络安全·自动化·系统安全
Volunteer Technology13 天前
Flink Table API与SQL(一)
大数据·sql·flink
持敬chijing13 天前
Web渗透之SQL注入-常用sql语句
sql·安全·web安全·网络安全
Theo·Chan13 天前
更换 Kingbase V9 License 踩坑记
sql·信创·kingbase