专栏首页GreenLeavesOracle 表复杂查询之多表合并查询

Oracle 表复杂查询之多表合并查询

本文使用到的是oracle数据库scott方案所带的表,scott是oracle数据库自带的方案,使用前请确保其解锁

Oracle合并查询一共有四种方式,分别使用不同的关键字:UNION、UNION ALL、MINUS、INTERSECT

1、UNION ALL

使用UNION ALL,表示取A、B的合集,不过滤重复的数据行,代码如下:

select * from emp where sal>2500

左图表示结果集A

select * from emp where JOB='MANAGER'

左图表示结果集B

现在分析结果集A和结果集B,发现

红框中的数据重复了,接着我们在使用UNION ALL关键字

select * from emp where sal>2500
UNION ALL
select * from emp where JOB='MANAGER'

UNION ALL   重复数据并没有被排除掉

2、UNION

使用UNION,会将结果集A和结果集B进行UNION ALL运算,然后取两者交集的余集作为结果集

代码如下:

select * from emp where sal>2500
UNION
select * from emp where JOB='MANAGER'

原先使用UNION ALL中重复的记录行被排除掉了

3、Intersect

 使用Intersect,会将结果集A和结果集B进行UNION ALL运算,然后两者之间的集交集作为结果集和UNION刚好相反

select * from emp where sal>2500
INTERSECT
select * from emp where JOB='MANAGER'

将两个结果集的交集检索出来了

4、MINUS

 使用MINUS,取结果集A减去结果集B留下的差集,注:如果结果集A小于等于结果集B,返回空结果集.

select * from emp where sal>2500

左图表示结果集A

select * from emp where JOB='MANAGER'

左图表示结果集B

select * from emp where sal>2500
MINUS
select * from emp where JOB='MANAGER'

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Oracle 多行、多列子查询

    本文使用到的是oracle数据库scott方案所带的表,scott是oracle数据库自带的方案,使用前请确保其解锁 ? 一、多行子查询 多行子查询子查询是嵌入...

    郑小超.
  • Oracle 通过子查询批量添加、修改表数据

    1、通过查询快速创建表 create table test1(id,job,mgr,sal) as (select * from (select rownum...

    郑小超.
  • SQL学习之空值(Null)检索

    在创建表表,我们可以指定其中的列包不包含值,在一列不包含值时,我们可以称其包含空值null。 确定值是否为null,不能简单的检查是否=null。select语...

    郑小超.
  • SQL 语句分析 -explain 执行计划详解

    实际生产环境中,为了知道SQL语句的执行过程具体,我们可以使用explain + SQL语句来查看。

    技能锦囊
  • Oracle 查询练习

    1.已知Oracle的Scott用户中提供了三个测试数据库表,名称分别为dept,emp和salgrade。使用SQL语言完成以下操作

    Arebirth
  • MySQL 执行计划详解

    ​ 在企业的应用场景中,为了知道优化SQL语句的执行,需要查看SQL语句的具体执行过程,以加快SQL语句的执行效率。

    Parker
  • SQL员工部门表综合查询60题

    CREATE DATABASE oa; USE oa; CREATE TABLE dept( deptno INT PRIMARY KEY, dname V...

    Albert陈凯
  • Oracle数据库之第二篇

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    海仔
  • 数据库笔记

    在java程序中,一个字符串类型日期往数据库保存时使用to_date()函数,从数据库中取使用to_char()函数来获取字符串类型的日期。

    万能青年
  • Oracle - 函数及多表关联

    函数一般是在数据上执行的,它给数据的转换和处理提供了方便。只是将取出的数据进行处理,不会改变数据库中的值。函数根据处理的数据分为单行函数和聚合函数(组函数),组...

    Carlos Ouyang

扫码关注云+社区

领取腾讯云代金券