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

相关推荐
洛北辰南19 分钟前
系统架构设计师—数据库基础篇—数据库优化技术
数据库·系统架构·优化技术
大数据魔法师34 分钟前
MongoDB(二) - MongoDB命令详解
数据库·mongodb
kse_music35 分钟前
MySQL 与 MongoDB 的区别
数据库·mysql·mongodb
yqcoder35 分钟前
Express + MongoDB 实现登录验证码
数据库·mongodb·express
田猿笔记39 分钟前
FerretDB 2.0:开源 MongoDB 替代品的安装与使用指南
数据库·开源·ferretdb
V+zmm101341 小时前
机电公司管理信息系统小程序+论文源码调试讲解
java·数据库·微信小程序·小程序·毕业设计
何怀逸1 小时前
MySQL的buffer pool的缓存中,修改语句在执行时,是先更新buffer pool,还是先更新数据库
数据库·mysql·缓存
deadknight92 小时前
表、索引统计信息锁定和解锁
数据库·oracle
yinghuabanwo2 小时前
【1688】崖山集群YAC安装备忘
数据库·崖山yashandb
不剪发的Tony老师2 小时前
PostgreSQL 18新特性之虚拟生成列
数据库·postgresql