`
jinyanliang
  • 浏览: 303988 次
  • 性别: Icon_minigender_1
  • 来自: 河南开封
社区版块
存档分类
最新评论

SQL中UNION和UNION ALL区别

SQL 
阅读更多
在数据库中,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或者union all,各个select中的列数应相等。否则会出现The used SELECT statements have a different number of columns的错误提示。
分享到:
评论

相关推荐

    SQL语句 UNION 和 UNION ALL 使用

    SQL语句 UNION 和 UNION ALL 使用

    sql利用union all行转列

    sql利用union all行转列 利用最原始的方法进行行转列 简单明了

    Sql中的UNION ALL

    此资源为.txt文件,里面描述了sql中union all的使用方法和案例,如果需要可以下杂

    union all与order by用法

    union all与order by用法,并详细举例,oracle pl/sql

    sqlserver Union和SQL Union All使用方法

    SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中...SQL UNION ALL 语法SELECT

    SQL语句之Union和Union All的用法

    本文主要讲解SQL语句之Union和Union All的用法,比较实用,希望能给大家做一个参考。

    sql Union和Union All的使用方法

    UNION指令的目的是将两个SQL语句的结果合并起来。从这个角度来看, 我们会产生这样的感觉,UNION跟JOIN似乎有些许类似,因为这两个指令都可以由多个表格中撷取资料。

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

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

    Sql学习第一天——SQL UNION 和 UNION ALL 操作符认识

    关于SQL UNION 操作符 UNION 操作符用于合并... SQL UNION 语法(结果集没有重复值): 代码如下: SELECT s FROM table1 UNION SELECT s FROM table2 SQL UNION ALL 语法(结果集有重复的值): 代码如下: SELECT s FRO

    基本数据插入 except和intersect和exists和not exists和union和union all

    基本数据插入 except和intersect和exists和not exists和union和union all sql server

    SQL.rar_union

    对sql语句中的union和union all的区别,连接查询嵌套查询分组查询做了简要介绍。

    Mysql联合查询UNION和UNION ALL的使用介绍

    一、UNION和UNION ALL的作用和语法 UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型。同时,每条 SELECT 语句中...

    浅析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` ...

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

    OR、in和union all 查询效率到底哪个快? 网上很多的声音都是说union all 快于 or、in,因为or、in会导致全表扫描,他们给出了很多的实例。 但真的union all真的快于or、in? EXPLAIN SELECT * from employees ...

    SQL中JOIN和UNION区别、用法及示例介绍

    1.JOIN和UNION区别 join 是两张表做交连后里面条件相同的部分记录产生一个记录集, union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集 。 JOIN用于按照ON条件联接两个表,主要有四种: INNER JOIN...

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

    我们可以经常发现在处理SQL Server的时,很多人都会有一句出结果的习惯,但值得注意的是,不恰当的合并处理语句,往往会产生负面的性能,本文针对使用UNION ALL代替IF语句的合并处理做出一个简单的事例,用来说明...

    sql 查询结果合并union all用法_数据库技巧

    sql语句查询结果合并union all用法_数据库技巧,需要的朋友可以参考下。

Global site tag (gtag.js) - Google Analytics