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
相关推荐
whn19775 小时前
查询日期报错,参数DATETIME_FMT_MODE
数据库·sql
夜雪闻竹5 小时前
sql.js WASM 实战:浏览器里跑 SQLite
javascript·sql·wasm
Gauss松鼠会6 小时前
GaussDB(DWS) GUC参数修改、查看
java·数据库·sql·数据库开发·gaussdb
yuzhiboyouye6 小时前
所有的 SQL 都要经过 Explain 优化,是什么意思
数据库·sql
星川水月8 小时前
Access数据库快速入门——外部数据导入和SQL简单查询
数据库·sql·access
ElevenS_it1888 小时前
MySQL慢查询监控与告警实战:从slow_log采集到分钟级定位慢SQL的完整链路配置
android·sql·mysql
阳光九叶草LXGZXJ9 小时前
达梦数据库-学习-57-读写数据页超时告警排查(page[x,x,xxxxxx] disk write uses)-DSC集群版
linux·运维·服务器·数据库·sql·学习
阳光九叶草LXGZXJ10 小时前
达梦数据库-堆栈看问题-01-asmapi_asm_extent_load
linux·运维·数据库·sql·学习
pixle010 小时前
LangChain v1.2 Text-to-SQL 实战:从入门到生产级部署
sql·langchain·agent·智能助手·text-to-sql
清平乐的技术专栏10 小时前
【FlinkSQL笔记】(二)Flink SQL 基础语法详解
笔记·sql·flink