`
jackroomage
  • 浏览: 1217569 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

数据库中union 与union all 的区别

 
阅读更多

http://www.cn-java.com/www1/?uid-571903-action-viewspace-itemid-56384

 

 

在操作两个表时才发现两个的区别。
union 将两个表连接后删除其重复的项;
union all 将两个表连接都不删除其重复的项。

这个东东很简单。不过也记录一哈 。实在是一个小小的收获。

补充资料:

数据库中,UNION和UNION ALL都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。

UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如:

select * from users1 union select * from user2
这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。

而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL,如下:

select * from user1 union all select * from user2

分享到:
评论

相关推荐

    数据库中union和union all的区别

    在数据库查询中,UNION 和 UNION ALL 是两个非常重要的操作符,它们被用来组合不同的 SELECT 语句,形成一个单一的结果集。理解这两者之间的差异对于优化查询性能和获取准确的查询结果至关重要。 首先,UNION 操作...

    union all与order by用法

    UNION ALL 与 ORDER BY 用法详解 UNION ALL 和 ORDER BY 是 SQL 语言中的两个基本操作符,分别用于合并查询结果和排序数据。在 Oracle PL/SQL 中, UNION ALL 和 ORDER BY 的使用需要遵循一定的规则和限制。本文将...

    MySQL中使用or、in与union all在查询命令下的效率对比

    在MySQL数据库中,进行数据查询时,我们经常需要使用到`OR`、`IN`和`UNION ALL`这些操作符。这些操作符在不同的场景下有不同的效率表现,但并不是像网络上普遍认为的那样,`UNION ALL`总是比`OR`和`IN`更快。实际上...

    SQL语句 UNION 和 UNION ALL 使用

    通过本篇文章的学习,我们了解到 `UNION` 和 `UNION ALL` 的主要区别在于是否保留重复的行。此外,还介绍了使用这些关键字时需要注意的几个关键点,以及如何使用 `EXCEPT` 和 `INTERSECT` 运算符来处理结果集。这些...

    Sql中的UNION ALL

    ### SQL中的UNION ALL 在SQL查询语言中,`UNION ALL`是一个非常有用的运算符,它用于合并两个或多个`SELECT`语句的...了解其与`UNION`的区别,并能够在适当的情况下正确使用它,对于提高数据库管理技能是非常有益的。

    sql利用union all行转列

    本文主要介绍一种利用SQL语句中的`UNION ALL`来实现“行转列”的方法,并通过具体的示例代码进行详细解释。 #### 基本概念理解 1. **UNION ALL**:在SQL中,`UNION`用于合并两个或多个`SELECT`语句的结果集,但会...

    Oracle中Union与Union All的区别(适用多个数据库)

    在数据库查询中,`UNION` 和 `UNION ALL` 是两个关键的SQL操作,主要用于合并多个 `SELECT` 语句的结果。它们的主要区别在于如何处理重复的行。 `UNION` 操作符用于合并两个或多个 `SELECT` 查询的结果集,但会自动...

    oracle集合union、union all、intersect、minus

    Oracle 集合操作是指在数据库中对数据进行集合运算的操作,包括 union、union all、intersect 和 minus 等操作。这些操作可以对数据进行合并、交叉、差异等处理,提高数据处理效率。 union 操作 Union 操作是将两...

    MySQL中UNION与UNION ALL的基本使用方法

    在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。 MySQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算...

    简单了解MySQL union all与union的区别

    union 是对数据进行并集操作,不包括重复行,同时进行默认排序Union all 是对数据进行并集操作,包括重复行,不进行排序举例说明: 创建数据库表: CREATE TABLE `t_demo` ( `id` int(32) NOT NULL, `name` ...

    27.Oracle union多表查询1

    在Oracle数据库中,`UNION` 和 `UNION ALL` 是两种用于合并多个查询结果集的方法,主要应用于多表查询。这两个操作符在处理数据时有着显著的区别。 1. **UNION 操作符** `UNION` 用于合并两个或多个`SELECT`语句的...

    sqlserver Union和SQL Union All使用方法

    在SQL Server中,`UNION`和`UNION ALL`是两种用于合并多个SELECT语句结果集的关键字,它们在数据库查询中起着至关重要的作用。理解这两种操作符的使用方法可以帮助你更有效地构建和优化SQL查询。 首先,`UNION`操作...

    浅析mysql union和union all

    在MySQL数据库中,`UNION` 和 `UNION ALL` 是两种用于合并多个查询结果集的关键字,它们在处理数据时具有不同的特性和性能影响。 首先,`UNION` 关键字用于合并两个或更多 `SELECT` 查询的结果,并且会自动去除重复...

    MySQL如何使用union all获得并集排序

    在MySQL中,`UNION ALL` 用于合并多个`SELECT`语句的结果集,而这里的重点是如何在合并结果后进行排序。在给定的场景中,我们有一个文章数据表,其中文章的状态通过`PROMOTE_STATUS`字段表示,分别对应0(待发布)、...

    sqlserver union

    下面我们将深入探讨`UNION`的用法、语法以及其与`UNION ALL`的区别。 ### UNION的基本用法 1. **基本语法**: `UNION`的基本语法结构如下: ```sql SELECT column1, column2, ... FROM table1 UNION SELECT ...

    SQL语句之Union和Union All的用法

    4. 在某些数据库系统中,`UNION` 和 `UNION ALL` 可能需要更多的内存,因为它们需要存储合并后的结果集。 总之,`UNION` 和 `UNION ALL` 是SQL中用于组合查询结果的强大工具,根据需求选择合适的操作符可以提高查询...

Global site tag (gtag.js) - Google Analytics