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

相关推荐
青衿先生14 分钟前
返璞归真-SQL基本语法
数据库·sql
weixin_456904271 小时前
数据库设计与UML图
数据库·uml
codecrafter1231 小时前
MATLAB中的while循环:从入门到精通的完整指南
java·数据库·其他·matlab
程序新视界2 小时前
三种常见的MySQL数据库设计最佳实践
数据库·后端·mysql
寒士obj2 小时前
MyCat实现分库分表
数据库
Savvy..3 小时前
Redis 黑马点评-商户查询缓存
数据库·redis·缓存
可DRAK鸦|・ω・`)3 小时前
ArcGIS数据迁移问题汇总(postgresql)
数据库·postgresql
奶糖 肥晨3 小时前
批量重命名技巧:使用PowerShell一键整理图片文件命名规范
android·服务器·数据库
数据与人3 小时前
MySQL 8.0 InnoDB ReplicaSet 完整配置指南与切换
数据库·mysql·adb
JIngJaneIL4 小时前
图书馆自习室|基于SSM的图书馆自习室座位预约小程序设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·图书馆自习室