`
wang_zhi_peng2007
  • 浏览: 241857 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

UNION 和UNION ALL 的区别(合并表和视图)

 
阅读更多

在数据库中,UNIONUNION 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

分享到:
评论

相关推荐

    Microsoft SQL Server 2005技术内幕:T-SQL查询

     1.3 创建表和定义数据完整性  1.4 总结 第2章 单表查询  2.1 SELECT语句的元素  2.2 谓词和运算符  2.3 CASE表达式  2.4 NULL值  2.5 同时操作(ALL-AT-ONCE OPERATION)  2.6 处理字符数据  2.7...

    oracle的sql优化

     在不需要考虑重复记录合并时候用Union All来代替Union  使用显性游标而不使用隐性游标,特别是大数据量情况下隐性游标对性能影响很大  是否使用函数的问题  用直接的表关联来代替Exist.用Exist或Not Exists来...

    OCA认证考试指南1Z0-051

    1.2.1 行和表 1.2.2 数据规范化 1.3 SQL语言概述 1.3.1 SQL标准 1.3.2 SQL命令 1.3.3 面向集合语言 1.4 使用客户工具 1.4.1 SQL*Plus 1.4.2 SQLDeveloper 1.5 创建演示模式 1.5.1 用户和模式 ...

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    表名或视图列表:表示即将进行数据查询的数据表或者视图,表或视图可以有多个。 条件表达式1:设置查询的条件。 属性名1:表示按该字段中的数据进行分组。 条件表达式2:表示满足该表达式的数据才能输出。 属性2:...

    (第一卷)Microsoft.SQL.Server.2008技术内幕:T-SQL语言基础

    主要包括SQL的基础理论、逻辑查询处理、SELECT查询、连接和子查询、表表达式、过滤和分组、透视转换、修改数据、事务和一致性的处理、可编程对象等内容。  书中并非系统地罗列T-SQL的各种语法元素,而是结合实践中...

    (第二卷)Microsoft SQL Server 2008技术内幕:T-SQL语言基础

    主要包括SQL的基础理论、逻辑查询处理、SELECT查询、连接和子查询、表表达式、过滤和分组、透视转换、修改数据、事务和一致性的处理、可编程对象等内容。  书中并非系统地罗列T-SQL的各种语法元素,而是结合实践中...

    aspnet-web-forms-dashboard-data-federation:.NET,商业智能,Web表单仪表板

    联盟和UnionAll Union查询将来自两个或多个表的行合并为一个数据集,并删除合并表中的重复行。 UnionAll查询执行相同的操作,只是它不会删除重复的行。 如果其列的数据类型,则可以为数据源创建联合查询。 转型如果...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

    7.7.2 简单视图和复杂视图 242 7.7.3 创建、更改和删除视图 243 7.8 同义词 244 7.9 序列 246 7.9.1 创建序列 247 7.9.2 使用序列 248 7.10 本章知识点回顾 252 7.11 自测题 253 7.12 自测题答案 258 第8...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第1/2部分)

    7.7.2 简单视图和复杂视图 242 7.7.3 创建、更改和删除视图 243 7.8 同义词 244 7.9 序列 246 7.9.1 创建序列 247 7.9.2 使用序列 248 7.10 本章知识点回顾 252 7.11 自测题 253 7.12 自测题答案 258 第8...

    Java面试宝典2020修订版V1.0.1.doc

    15、union和union all有什么不同? 45 16、char、varchar2、varchar有什么区别? 45 17、Oracle和Mysql的区别? 46 18、Oracle语句有多少类型 46 19、oracle分页语句 47 20、从数据库中随机取50条 47 21、order by与...

    非常全的oracle文档

    20.3. ANY和ALL操作符 123 20.4. 常见查询错误 124 20.5. 多列子查询 125 20.6. 关联子查询 126 20.7. 嵌套子查询 127 二十一、 高级查询 128 22.1. UNION操作符 128 22.2. 层次化查询 129 22.3. 格式化查询 131 ...

    SQL查询技巧(范例宝典)

     实例324 在分组查询中使用ALL关键字 473  实例325 在分组查询中使用CUBE运算符 475  实例326 在分组查询中使用ROLLUP 477  实例327 对数据进行降序查询 479  实例328 对数据进行多条件排序 480 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    日期类型 date 7字节 用于存储表中的日期和时间数据,取值范围是公元前4712年1月1日至公元9999年12月31日,7个字节分别表示世纪、年、月、日、时、分和秒 二进制数据类型 row 1~2000字节 可变长二进制数据,在具体...

    C#开发经验技巧宝典

    0891 union与连接之间的区别 523 0892 如何应用IN查询表中的记录信息 524 0893 使用一个单行的子查询来更新列 524 0894 使用IN引入子查询限定查询范围 524 0895 在UPDATE语句中应用子查询 525 0896 如何...

    C#程序开发范例宝典10

    496 10.11 多表查询(连接查询) 498 实例340 利用FROM子句进行多表查询 498 实例341 使用表别名 499 实例342 合并多个结果集 501 10.12 嵌套查询 503 实例343 简单嵌套查询 503 ...

    LINQ_to_SQL语法及实例大全

    Union(合并) 33 Intersect(相交) 34 Except(与非) 34 LINQ to SQL语句(9)之Top/Bottom和Paging和SqlMethods 35 Top/Bottom操作 35 Take 35 Skip 35 TakeWhile 36 SkipWhile 36 Paging(分页)操作 36 1.索引 ...

Global site tag (gtag.js) - Google Analytics