`
jarson
  • 浏览: 6138 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

union,union all 用法及区别

阅读更多
sql union用法和sql union all用法,sql union效率
1、sql union用法
sql union在查询中可以将两个SQL 语句的结果合并起来。如果这样看的话, UNION 跟 JOIN 是相似的,两个指令都可以由多个表格中撷取资料。
sql union的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。
sql union只是将两个结果联结起来一起显示,并不是联结两个表,sql用法如下:
两个表格, StoreData_200903 表格 StoreData_200904,这两张表格的数据结构是完全一样的,只是存放了不同月份的数据库(注意:这样做是为了能够分表,而且可以按月存档数据),现在需要联合查询,就是从两个表中查询出数据,SQL 语句:
SELECT top 50 FROM StoreData_200903
UNION
SELECT top 50 FROM StoreData_200904
2、sql union all用法
sql union all这个指令的目的也是要将两个 SQL 语句的结果合并在一起。 sql union all和 sql union不同之处在于 sql union all会将每一次符合条件的数据列出来,无论数据库有无重复。
用法也很简单:
SELECT top 50 FROM StoreData_200903
UNION ALL
SELECT top 50 FROM StoreData_200904
值得注意的是,sql union all的执行效率要比sql union效率要高很多,这是因为,使用sql union需要进行排重,而sql union All 是不需要排重的,这一点非常重要,因为对于一些单纯地使用分表来提高效率的查询,完全可以使用sql union All。
还有,如果使用了union,无论是sql union还是sql union all一定要记住对数据库表加上索引!

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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

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

select * from gc_dfys
union
select * from ls_jg_dfys

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

而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。

从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL,如下:

select * from gc_dfys
union all
select * from ls_jg_dfys
分享到:
评论

相关推荐

    union all与order by用法

    UNION ALL 用于合并两个或多个 SELECT 语句的结果集,使用方法是将每个 SELECT 语句用 UNION ALL 连接起来。例如: ```sql SELECT 'china' AS col_1, 'america' AS col_2, 'canada' AS col_3, -1 AS status FROM ...

    SQL语句 UNION 和 UNION ALL 使用

    ### SQL语句 UNION 和 UNION ALL 使用详解 #### 一、SQL UNION 和 UNION ALL 的基本概念 **UNION** 和 **UNION ALL** 是 SQL 语言中用于合并两个或多个 SELECT 语句结果集的关键字。这两种操作符都可以帮助我们...

    MySQL UNION 与 UNION ALL 语法与用法.docx

    MySQL UNION 与 UNION ALL 的区别在于,UNION 会删除结果集中重复的记录,而 UNION ALL 则会把所有的记录返回。 UNION ALL 的效率高于 UNION,因为 UNION 需要删除重复记录,而 UNION ALL 不需要。 MySQL UNION ...

    Mssql Union 与 Union All区别,用union还是union all主要看业务需求.docx

    在SQL查询中,`UNION` 和 `UNION ALL` 是两种用于合并多个SELECT语句结果集的方法,它们之间的主要区别在于数据去重处理和性能优化。了解这些概念对于优化SQL查询性能和满足特定的业务需求至关重要。 1. **UNION**...

    sql利用union all行转列

    ### SQL利用UNION ALL进行行转列方法解析 在数据库操作中,经常需要对数据进行各种转换以满足不同的业务需求。其中,“行转列”(Pivot)是一种常见的数据转换方式,它能够将数据表中的某列或多列值转换为多列的...

    Sql中的UNION ALL

    #### UNION ALL 的使用方法 `UNION ALL`的基本语法格式如下: ```sql (SELECT column_name(s) FROM table1) UNION ALL (SELECT column_name(s) FROM table2); ``` 这里的关键在于两个`SELECT`语句必须拥有相同...

    UNION ALL 的使用方法

    SELECT ... UNION ALL SELECT C.TRD_NO FROM XXXXXXXXX C WHERE C.CLIENT_CD = W_IN_CLIENT_CD ) D WHERE A.TRD_NO = D.TRD_NO AND A.CLIENT_CD = W_IN_CLIENT_CD AND A.RESULT IS NULL ;

    sql Union和Union All的使用方法

    在SQL中,`UNION`和`UNION ALL`是用来合并多个查询结果的两种方法,它们主要用于处理来自不同数据表的数据。尽管它们的功能相似,但它们在处理重复数据时的行为有所不同。 首先,让我们来理解`UNION`。`UNION`操作...

    SQL语句之Union和Union All的用法

    在SQL查询中,`UNION` 和 `UNION ALL` 是两种用于合并多个查询结果集的方法,它们在处理数据集合时具有重要的作用。本篇文章将详细介绍这两种操作符的使用及它们之间的区别。 首先,让我们来看一下 `UNION`。`UNION...

    使用UNION ALL代替IF语句的合并处理案例

    另一种方法是使用`UNION ALL`将两个查询合并为一个,根据`@Flag`过滤结果。 ```sql SELECT * FROM dbo.A WHERE @Flag = 0 UNION ALL SELECT * FROM dbo.B WHERE @Flag = 1 ``` 乍看之下,`UNION ALL`方法似乎...

    sqlserver Union和SQL Union All使用方法

    理解这两种操作符的使用方法可以帮助你更有效地构建和优化SQL查询。 首先,`UNION`操作符的基本功能是合并两个或更多SELECT语句的结果,但只保留不重复的行。这意味着如果你有两个或多个表的数据源,`UNION`将去除...

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

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

    数据库中union 与union all 的区别

    在数据库查询中,`UNION` 和 `UNION ALL` 是两种用于合并多个查询结果集的方法,它们在处理数据合并时具有不同的行为和性能特点。 首先,`UNION` 操作符用于合并两个或更多 `SELECT` 查询的结果,并且会自动去除...

    浅析mysql union和union all

    在使用 `UNION` 或 `UNION ALL` 时,有时需要结合其他子句,如 `ORDER BY` 和 `LIMIT` 来控制结果的排序和限制返回的行数。在这种情况下,应该将这些子句放在最后一个 `SELECT` 语句之后,并将整个 `UNION` 语句用...

    27.Oracle union多表查询1

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

    5分钟了解MySQL5.7中union all用法的黑科技

    总结以上内容,本文主要讲述了MySQL中UNION ALL用法的基本概念、在不同版本的MySQL中UNION ALL的性能差异,以及如何通过理解执行计划来优化数据库操作。此外,还提到了与MariaDB的对比以及OCR扫描技术可能带来的问题...

Global site tag (gtag.js) - Google Analytics