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'),没有去除重复行。

相关推荐
-SGlow-8 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
明月5669 小时前
Oracle 误删数据恢复
数据库·oracle
♡喜欢做梦10 小时前
【MySQL】深入浅出事务:保证数据一致性的核心武器
数据库·mysql
遇见你的雩风11 小时前
MySQL的认识与基本操作
数据库·mysql
dblens 数据库管理和开发工具11 小时前
MySQL新增字段DDL:锁表全解析、避坑指南与实战案例
数据库·mysql·dblens·dblens mysql·数据库连接管理
weixin_4196583111 小时前
MySQL的基础操作
数据库·mysql
不辉放弃12 小时前
ZooKeeper 是什么?
数据库·大数据开发
Goona_12 小时前
拒绝SQL恐惧:用Python+pyqt打造任意Excel数据库查询系统
数据库·python·sql·excel·pyqt
程序员编程指南13 小时前
Qt 数据库连接池实现与管理
c语言·数据库·c++·qt·oracle
幼儿园老大*15 小时前
数据中心-时序数据库InfluxDB
数据库·时序数据库