`
kidiaoer
  • 浏览: 804347 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Oracle中UNION 与UNION ALL的学习

阅读更多
Oracle中UNION 与UNION ALL的学习
1、UNION:并集,所有的内容都查询,重复的显示一次;

2、UNION ALL:并集,所有的内容都显示,包括重复的;

3、INTERSECT:交集,只显示重复的;

4、MINUS:差集,只显示对方没有的(跟顺序是有关系的)

两者都是对记录集操作,把来自许多SELECT语句的结果组合到一个结果集合中。不过值得注意的一点是,类型的一致性,既要满足,列于每个 SELECT语句的对应位置的被选择的列应具有相同的类型。(例如,被第一个语句选择的第一列应和被其它语句选择的第一列具有相同的类型。)


   1. UNION语法结构:  
   2. SELECT ...  
   3. UNION [ALL]  
   4. SELECT ...  
   5. [UNION [ALL]  
   6. SELECT ...  

UNION语法结构:
SELECT ...
UNION [ALL]
SELECT ...
[UNION [ALL]
SELECT ...



UNION 与 UNION ALL 的区别:
UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。但是,如果表数据量大,就可能导致用磁盘进行排序。
UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。

从效率上说,UNION ALL要比UNION快很多,重要的一点就是不需要排序。在考虑两
者如何使用更适合某一种场景,就要从做UNION的两张表上考虑了,如果不会出现
重复数据,就优先考虑UNION ALL。 

分享到:
评论

相关推荐

    oracle集合union、union all、intersect、minus

    oracle集合union、union all、intersect、minus

    Oracle中的Union、Union_All、Intersect、Minus

    Oracle中的Union、Union_All、Intersect、Minus

    union all与order by用法

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

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

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

    27.Oracle union多表查询1

    3、测试数据说明超女基本信息历史表(T_GIRL_HIS)中有4条记录,超女基本信息表(T_GIRL)中有3条记录,两个表中有相交的记录('0103'、'010

    oracle学习日志总结

    尽量使用“>=”,不要使用“>”,用EXISTS代替IN(外表数据小情况),用大于或小于代替不等于,用右模糊查询(LIKE ‘…%’)代替模糊查询,用UNION ALL代替UNION,union代替or,trancate代替delete等. 7. count(1)比...

    浅谈Oracle数据库性能的优化

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

    Oracle 多行记录合并_连接_聚合字符串的几种方法_oracle_脚本之家1

    1.被集合字段范围小且固定型 灵活性 性能 难度 2.固定表固定字段函数法 灵活性 性能 难度 3.灵活表函数法 灵活性 性能 难度 4.一条SQL法 灵活性

    Oracle-[WITH & CONNECT

    union all select '1' as pid, '2' as id, '2' as name from dual union all select '1' as pid, '3' as id, '3' as name from dual union all select '2' as pid, '5' as id, '5' as name from dual union ...

    Oracle SQL最佳实践

    1.用EXISTS代替DISTINCT,消除sort operation  2.如果在GROUP BY中过滤数据,在WHERE从句中指定条件比在HAVING从句中有更好的...因此如果应用能够处理重复,或者确信没有重复记录,那么考虑使用UNION ALL代替UNION

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

    ORACLE用户是学习ORACLE数据库中的基础知识,下面就介绍下类系统常用的默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理数据库的人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高的用户,...

    Oracle的列转行问题

    Oracle中使用语句将行数据转换称不同的列表示,或者将不同的列数据写到同一列的不同行上的行列转换问题是一个非常传统的话题。 网络上流传了很多将行数据转换称列数据的方法和应用实例,一般通过decode或者case函数...

    oracle sql of extracting table structure

    union all select distinct lower(all_c.table_name) table_name --,(case -- when column_id || to_char(column_id) -- when column_id (column_id) -- when column_id > 100 then 'H' || substrb(to_char...

    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,...

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

    union all在MySQL5.6下的表现 Part1:MySQL5.6.25 [root@HE1 ~]# MySQL -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: ...

    oracle的sql优化

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

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    4.2.1 UNION和UNION ALL 103 4.2.2 MINUS 106 4.2.3 INTERSECT 107 4.3 集合与空值 108 4.3.1 空值与非直观结果 108 4.3.2 集合运算中的空值行为 110 4.3.3 空值与GROUP BY和ORDER BY 112 4.3.4 空值与聚合...

    Oracle Database 11g初学者指南--详细书签版

    在过去的14年中,他与IanAbramson和MichaelCorey为OraclePress合著了一系列图书.Abbey在国际Oracle用户团体非常活跃,经常出席COLLABORATE、OraclecOpenWorld和区域性用户组会议.  Michael J.Corey是Ntirety...

Global site tag (gtag.js) - Google Analytics