`

Oracle中union/union all/Intersect/Minus用法

阅读更多
Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All,对两个结果集进行并集操作,包括重复行,不进行排序;
Intersect,对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
Minus,对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。
order by子句必须写在最后一个结果集里,并且其排序规则将改变操作后的排序结果;并且对于Union、Union All、Intersect、Minus都有效。
表头会用第一个连接块的字段。
1.Union
union用法中,两个select语句的字段类型匹配,而且字段个数要相同.
UNION连接的两个表是同一表,使用UNION会过滤重复行,显示的是一张表的数据。
下面SQL查询语句中两个表完全一样,所以查询显示的是单张表的信息。
SCOTT@bys1>select deptno,dname as "aa",loc from dept union select deptno,dname,loc from dept;
    DEPTNO aa             LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
 2.Union All
UNION ALL,它的用法和union一样,只不过union含有distinct的功能,它会把两张表了重复的记录去掉,
而union all不会,所以从效率上,union all 会高一点,但在实际中用到的并不是很多.
效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL。
尽量使用union all,因为union需要进行排序,去除重复记录,效率低。 
下面SQL查询语句中两个表完全一样,所以查询显示了两次表内信息。
SCOTT@bys1>select deptno,dname,loc as "aa" from dept union allselect deptno,dname,loc as "bb" from dept;
    DEPTNO DNAME          aa
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
 3.intersect
对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;返回两个表共同含有的数据,取出交集作为最终的返回结果。
下面SQL查询语句中两个表完全一样,所以查询显示的是单张表的信息。
SCOTT@bys1>select deptno,dname,loc as "aa" from dept intersect select deptno,dname,loc as "bb" from dept;
    DEPTNO DNAME          aa
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
 4.minus
对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。
第一个结果集减去第二个结果集中的内容,所剩余的内容作为最终的返回结果。
下面SQL查询语句中两个表完全一样,所以查询显示无信息。
SCOTT@bys1>select deptno,dname,loc as "aa" from dept minus select deptno,dname,loc as "bb" from dept;
 
no rows selected
0
1
分享到:
评论

相关推荐

    oracle集合union、union all、intersect、minus

    Oracle 集合操作是指在数据库中对数据进行集合运算的操作,包括 union、union all、intersect 和 minus 等操作。这些操作可以对数据进行合并、交叉、差异等处理,提高数据处理效率。 union 操作 Union 操作是将两...

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

    Oracle 集合操作函数 union、intersect、minus Oracle 集合操作函数是用于合并多条 SELECT 语句的结果的函数,包括 UNION、INTERSECT、MINUS 等。这些函数可以将多个查询结果合并成一个结果集,以便进一步处理和...

    Oracle和SqlServer语法区别

    [{UNION | UNION ALL | INTERSECT |MINUS} SELECT U] [ORDER BY clause] [FOR UPDATE] ``` SqlServer: ``` SELECT select_list FROM table_source [WHERE search_condition] [GROUP BY [ALL] group_by_expression ...

    Oracle_plsql常用方法汇总

    Oracle PL/SQL 中的常用方法汇总 Oracle PL/SQL 是一种强大的编程语言,广泛应用于 Oracle 数据库管理系统中。下面是 Oracle PL/SQL 中的一些常用方法汇总: 一、表操作 在 Oracle PL/SQL 中,表操作是最基本也是...

    Mastering oracle SQL

    Oracle SQL还包括联接操作,如内连接、外连接、交叉连接等,以及子查询和集合操作,如UNION、INTERSECT和MINUS。这些高级查询技术对于处理复杂的数据关系至关重要。书中会深入讨论这些主题,并给出实例来帮助读者...

    最全的oracle常用命令大全.txt

    下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。 1、用户 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user_...

    Oracle hint

    但这不适用于UPDATE和DELETE语句,也不适用于带有GROUP BY、DISTINCT、INTERSECT、MINUS或UNION的语句。 5. **RULE** - `/*+ RULE */`:指定使用基于规则的优化策略,而不是基于成本的优化策略。在较新版本的...

    Oracle高级sql学习与练习

    1. 集合操作包括UNION、UNION ALL、INTERSECT和MINUS等,它们用于合并两个或多个SELECT语句的结果集。UNION和UNION ALL用于联合多个结果集,不同之处在于UNION ALL会将所有结果包括重复项,而UNION则会自动去除重复...

    Oracle函数文档

    - **高级查询**:子查询,UNION/UNION ALL合并查询结果,INTERSECT找出交集,MINUS找出差集。 5. **事务和并发控制**: - **事务管理**:COMMIT提交,ROLLBACK回滚,SAVEPOINT设置保存点。 - **锁定机制**:ROW...

    oracle中sql函数小结

    主要包括`UNION`, `UNION ALL`, `INTERSECT` 和 `MINUS`。 - **UNION ALL**:返回所有查询结果,包括重复行。 - **UNION**:返回所有查询结果,但会自动去除重复行。 - **INTERSECT**:返回两个查询结果集中的公共...

    ORACLE__SQL.rar_oracle

    子查询可以在查询中嵌套另一个查询,而集合操作如UNION、INTERSECT、MINUS则用于合并或对比多个查询结果。 总的来说,Oracle SQL提供了丰富的功能,既包括SQL标准的功能,也有Oracle特有的扩展。通过深入学习和实践...

    oracle 10g培训资料——SQL第二部分

    在本培训资料的第二部分中,主要介绍了四种高级查询语句:UNION、UNION ALL、INTERSECT和MINUS,这些都是集合操作符,用于合并或比较多个SQL查询的结果。 1. **UNION** 操作符: UNION用于合并两个或更多SELECT...

    Sql Server与Oracle的区别

    - **SELECT语句**:尽管基本语法相似,但Oracle支持特定的优化提示和集合运算符如START WITH和CONNECT BY,以及INTERSECT和MINUS,这些在Sql Server中需要通过其他方式实现,比如使用EXISTS和NOT EXISTS子句。...

    第6章 Oracle_DML_高级查询.pptx

    本章将深入探讨四种主要的集合运算:UNION、UNION ALL、INTERSECT 和 MINUS,以及子查询的使用,这些都是Oracle数据库中进行高效数据检索的关键工具。 一、集合运算 1. UNION 运算符:它用于合并两个或多个SELECT...

    浅谈Oracle优化排序的操作

    Oracle的排序操作通常发生在以下几种情况下:创建索引、索引维护、ORDER BY、GROUP BY、DISTINCT、UNION/INTERSECT/MINUS以及SORT-MERGE JOIN等。 **排序空间**:在进行排序时,Oracle会先尝试在`sort_area_size`...

    Oracle培训教材.doc

    连接两字符串可以使用||,UNION、UNION ALL、INTERSECT和MINUS则用于合并或比较多个查询的结果集。 在SQL查询中,SELECT语句是最基础的部分,用于从表中提取数据。例如,`SELECT * FROM jobs`会显示jobs表的所有列...

Global site tag (gtag.js) - Google Analytics