`
kidiaoer
  • 浏览: 821953 次
  • 性别: 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 等操作。这些操作可以对数据进行合并、交叉、差异等处理,提高数据处理效率。 union 操作 Union 操作是将两...

    oracle中insert, 插入批量插入及union

    oracle中insert, 插入批量插入及union

    union all与order by用法

    在 Oracle PL/SQL 中, UNION ALL 和 ORDER BY 的使用需要遵循一定的规则和限制。本文将详细介绍 UNION ALL 和 ORDER BY 的用法,并通过实例解释其应用场景。 UNION ALL 的用法 UNION ALL 用于合并两个或多个 ...

    27.Oracle union多表查询1

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

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

    在数据库查询中,`UNION` 和 `UNION ALL` 是两个关键的SQL操作,主要用于合并多个 `SELECT` 语句的结果。它们的主要区别在于如何处理重复的行。 `UNION` 操作符用于合并两个或多个 `SELECT` 查询的结果集,但会自动...

    Oracle集合操作函数union、intersect、minus.docx

    UNION ALL 操作符与 UNION 操作符类似,但是它不会去掉重复行,而是将所有结果都保留。例如: SELECT id, name FROM worker UNION ALL SELECT empno, ename FROM emp; 三、INTERSECT (交集) INTERSECT 操作符可以...

    Oracle高级sql学习与练习

    Oracle高级SQL学习与练习涵盖了数据库编程中的一系列高级主题,旨在帮助数据库开发者和管理员提高解决复杂问题的能力。在Oracle数据库系统中,高级SQL技能是进行高效数据管理、查询优化和复杂数据处理的基础。 1. ...

    ORACLE经典学习笔记

    ### ORACLE经典学习笔记知识点概览 #### 第一章 ORACLE 命令 本章节主要介绍了Oracle数据库中常用的命令及其使用方法。 1. **查看参数文件**: `Desc v$parameter` - 这个命令用于查看Oracle的参数文件信息,通过...

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

    在Oracle 11g及更高版本中,`LISTAGG`函数通常是最便捷和高效的选择,但对于旧版本或者特定需求,其他方法也有其适用价值。理解并掌握这些方法,有助于我们在实际工作中更有效地处理字符串聚合问题。

    oracle学习日志总结

    本文将对“Oracle学习日志总结”中的关键知识点进行深入探讨,帮助读者理解和优化Oracle数据库的使用。 1. **共享SQL和参数化查询**:共享SQL是指在数据库中重用已解析的SQL语句,减少了解析时间,提高了性能。使用...

    浅谈Oracle数据库性能的优化

    在Oracle数据库中,SQL语句的执行过程通常包括三个阶段:解析(Parse)、执行(Execute)和提取结果(Fetch)。每个阶段都可能成为性能瓶颈,因此,对这些阶段进行针对性的优化至关重要。 ##### 2.1 针对Parse的...

    Oracle数据库学习日记

    ### Oracle数据库学习知识点详解 #### 一、基本使用 ##### 1.1 常用命令 **1.1.1 Connect/Disconnect 数据库连接命令** - **Connect**: 使用 `connect` 命令可以连接到Oracle数据库。语法通常为 `connect ...

    oracle 分析函数学习笔记

    在描述中提到的场景中,有几种不同的方法可以实现数据统计,包括通过程序处理、使用临时表和包、标准SQL的UNION以及Oracle特有的分析函数。每种方法都有其优缺点。例如,程序处理方法与数据库无关,但增加了开发工作...

    理解oracle中的外连接

    全外连接在比较两个数据集并显示所有可能的数据时非常有用,但Oracle数据库不直接支持全外连接,需要通过UNION ALL或自连接来模拟。 模拟全外连接的示例: ```sql SELECT columns FROM (table1 LEFT OUTER JOIN ...

    oracle中的grouping

    在SQL语句中,`GROUPING`函数通常与`GROUP BY`子句配合使用。下面是一些关键点: - **GROUPING(expr)**:用于确定`expr`列是否出现在`GROUP BY`子句中。 - **GROUP BY ROLLUP(expr1, expr2, ...)**:按指定的顺序对...

    oracle入侵与SQL注射技巧

    ### Oracle入侵与SQL注入技巧详解 #### 一、Oracle数据库特性及SQL注入基础 在讨论Oracle入侵与SQL注入技巧之前,我们首先需要了解Oracle数据库的一些基本特性以及SQL注入的基础概念。 **1.1 Oracle数据库简介** ...

    Oracle中如何用SQL检测字段是否包括中文字符.doc

    UNION ALL SELECT 'ab 测试 cd' c1 FROM dual ) WHERE c1 <> CONVERT(c1, 'US7ASCII', 'ZHS16GBK'); ``` 在这个例子中,我们创建了一个包含两个记录的子查询,其中一个记录包含中文字符,另一个则没有。通过比较...

Global site tag (gtag.js) - Google Analytics