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
相关推荐
sugar__salt31 分钟前
MyBatis ③动态 SQL 完全指南 —— 从条件拼接到批量操作
java·sql·mybatis
x-cmd2 小时前
用 Rust 打造 AI 时代的 SQL:把重复任务变成可执行文件
数据库·人工智能·sql·ai·容器·rust·workflow
灯澜忆梦14 小时前
【MySQL10】进阶篇 | 索引_#2性能优化
数据库·sql·mysql·性能优化
Exclusive_Cat19 小时前
MySQL回表机制解析与优化策略
数据库·sql
影寂ldy20 小时前
SQL 索引(Index)完整笔记
数据库·笔记·sql
ha_lydms21 小时前
使用SQL导入MaxCompute的数据至Hologres
大数据·sql·dataworks·maxcompute·hologres·odps·datastudio
冰暮流星1 天前
mysql之查询
数据库·sql·mysql
Csvn1 天前
📊 SQL 入门 Day 17:数据更新与删除
后端·sql
杜子不疼.1 天前
不会SQL也能改数据库?我用NocoDB把MySQL变成了表格界面
数据库·sql·mysql
今天AI了吗1 天前
AI辅助数据库工具链对比:从SQL优化到架构设计的主流方案评估
数据库·人工智能·sql