`
jackroomage
  • 浏览: 1197093 次
  • 性别: 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是数据库中用于合并查询结果集的操作符,它们有一些关键的区别。 UNION操作符将两个或多个SELECT语句的结果集合并为一个结果集,并自动去除其中的重复行。这意味着,如果两个结果集中有相同的行,...

    union all与order by用法

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

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

    Union 与 Union ALL 的作用都是合并 SELECT 的查询结果集,那么它们有什么不同呢? Union 将查询到的结果集合并后进行重查,将其中相同的行去除。缺点:效率低; 而Union ALL 则只是合并查询的结果集,并不重新查询...

    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 union和union all

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

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

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

    数据库常见面试题

    5、union 与union all的区别? 6、简述Mysql几种Join的区别? 7、drop,delete与truncate的区别? 8、mysql有哪几种索引? 9、innodb的事务与日志的实现方式? 10、简述Mysql Innodb引擎和MyIASM引擎的区别? 11、...

    数据库和ado知识

    union,union all的使用 一次插入多条数据 字符串函数 ADO.NET主要类 数据库连接字符串 SqlConnection类的State属性 SqlCommand类的方法: StatementCompleted事件的触发 获得刚刚插入数据库的自增id Sql注入攻击...

    用“万能数据库查询分析器”对 SQLite 进行测评

    在SQL(Structured Query Language)语言DML中,有四大语句堪称其精髓部分,分别是CASE WHEN语句,Left Outer Join | Left Join | Right Outer Join | Right Join | Inner Join语句,WITH AS语句,UNION、UNION ALL...

    数据库MySQL-union(联合)

    1.8 union(联合) 插入测试数据 create table emp( id tinyint unsigned auto_increment primary key, name varchar(20) not null, skill set('PHP','mysql','java') ); insert into emp values (null,'李白',1...

    SQL语句之Union和Union All的用法

    SQL中Union和Join语句非常类似,但是Union有一个限制条件:两个 SQL 语句所产生的栏位需要是同样的资料种类,最后的结果会看到不同的资料值。 格式: [SQL 语句 1] UNION [SQL 语句 2] 例如: 表store_info 和表...

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

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

    sql语句生成器+支持各大数据库+说明书

    SQL语句生成器的特色 支持几乎所有类型的数据库, ...联合(Union,对于Oracle 支持Union All,Minus,Intersect) 支持将SQL查询语句,替换为插入(Insert into)和更新(Update)语句  附属工具内嵌入Delphi IDE

    MySQL中union和join语句使用区别的辨析教程

    union和join是需要联合多...说明一下union 和union all的差别,对于union如果存在相同的数据记录会被合并,而union all不会合并相同的数据记录,该有多少条记录就会有多少条记录。例如在mysql下执行以下语句: select

    oracle 数据库所有示例

    select iname,iage,ideptno from showinfo where ideptno in(10,20)union all select iname,iage,ideptno from showinfo where ideptno=10; --就好比 (20,30)减去30 只剩下20 了一样 结果A减去结果B select sname,...

    浅谈Oracle数据库性能的优化

    提出了一种优化Oracle 数据库的方法...Oracle 中SQL 语句的执行过程可分为解析(Parse)、执行(Execute)和提取结果(Fetch)三步,此方法就是通过对SQL 语句在Oracle 数据库中优化执行的三个过程来提高Oracle 数据库的性能。

Global site tag (gtag.js) - Google Analytics