UNION和UNION ALL的区别

一、区别

去重功能

  • UNION会去除结果集中的重复行。
  • UNION ALL不会去除重复行,它只是简单地将多个结果集合并在一起。

性能

  • UNION ALL通常比UNION性能更好,因为UNION需要进行去重操作,这会增加额外的计算开销。

二、具体例子

假设有两个表table1table2,它们的结构相同,都有idname字段。

1、使用UNION

sql 复制代码
SELECT id, name FROM table1
UNION
SELECT id, name FROM table2;

如果table1中有数据 (1, 'Alice') 和 (2, 'Bob'),table2中有数据 (2, 'Bob') 和 (3, 'Charlie'),那么使用UNION的结果将是 (1, 'Alice')、(2, 'Bob') 和 (3, 'Charlie'),去除了重复的 (2, 'Bob')。

2、使用UNION ALL

sql 复制代码
SELECT id, name FROM table1
UNION ALL
SELECT id, name FROM table2;

使用UNION ALL的结果将是 (1, 'Alice')、(2, 'Bob')、(2, 'Bob') 和 (3, 'Charlie'),没有去除重复行。

相关推荐
木风小助理3 小时前
子查询与 JOIN 查询性能比较:执行机制与适用场景解析
数据库·sql·mysql
九章-3 小时前
智慧文旅信创落地新标杆:四川省文旅厅完成MySQL 5.7平滑替换,筑牢省级管理平台自主可控底座
数据库·mysql
蟹至之3 小时前
【MySQL】事务
数据库·mysql·事务
ao_lang3 小时前
数据库范式
数据库·mysql
DBA圈小圈4 小时前
【KingbaseES】V8R6查询长事务语句
数据库·postgresql·database
子超兄4 小时前
MVCC机制简介
数据库·mysql
虹科网络安全4 小时前
艾体宝洞察 | 在 Redis 之上,聊一聊架构思维
数据库·redis·架构
yuguo.im4 小时前
如何查看 Mysql 版本
数据库·mysql
中年程序员一枚4 小时前
让postman调用python的开发接口,链接sqlite数据库,让前后联动起来
数据库·python·postman
weixin_462446234 小时前
解决MongoDB官网下载过慢问题
数据库·mongodb