union、union all、 Intersect、minus的用法讲解

union(联合) 和union all

作 用:union(联合) 和union all的作用是将多个结果合并在一起显示出来,如果我们需要将两个select语句的结果作为一个整体显示出来,我们就可以使用这两个关键字。

区 别:union会自动压缩多个结果集合中的重复结果,同时进行默认规则的排序;而union all则将所有的结果全部显示出来,包括重复行,并且不进行排序。所以,在执行效率上,union all > union ,在以后的应用中,如果 没有强烈要求查询结果不可重复,建议读者使用union all。提到效率方面,在做多条件查询时,使用union替代or也会提高查询效率。

注意点:使用union和union all必须保证各个select 集合的结果有相同个数的列,并且每个列的类型是一样的。但列名则不一定需要 相同,oracle会将第一个结果的列名作为结果集的列名。
示 例:
//创建表1

     create table stu1_tb(
                name varchar2(10), //姓名
                sex number         //性别
      );

//stu1_tb插入数据

    insert into stu1_tb (name,sex) values('jy',0);
    insert into stu1_tb (name,sex) values('yt',1); 
    insert into stu1_tb (name,sex) values('lj',1); 
    insert into stu1_tb (name,sex) values('rb',0); 
    insert into stu1_tb (name,sex) values('lqk',0);

` union查询

select * from stu1_tb where sex = 0 or name = 'yt' 
union
select * from stu1_tb where sex = 1 

//执行结果
这里写图片描述
//union all查询
select * from stu1_tb where sex = 0 or name = ‘yt’
union all
select * from stu1_tb where sex = 1
//执行结果
这里写图片描述

minus(差集)

作 用:它先查询出SQL1语句所产生的结果集,然后看这些结果中有没有SQL2语句查询的结果。如果有的话,在SQL1语句所产生的结果集中删除这些结果。也就是说,minus最后生成的结果集是:sql1结果集 - sql2结果集与sql1结果集相同的结果。
注意点:sql2结果集中未包含在sql1结果集中的数据也同样会被舍弃。
示 例:
//minus查询

    select * from stu1_tb where (sex = 0 ) or name = 'yt'
    minus
    select * from stu1_tb where sex = 1

//执行结果
这里写图片描述

INTERSECT(交集)

作 用:查询既包含在sql1结果集中又包含在sql2结果集中的结果。
示 例:
//intersect查询

    select * from stu1_tb where (sex = 0 ) or name = 'yt'
     INTERSECT
     select * from stu1_tb where sex = 1    

//执行结果
这里写图片描述

对于以上四个关键字,除union all 外,其余关键字在查询结果中都会根据查询结果的第一列进行升序排序。如果使用order by对结果手动排序,必须放在最后一条select之后,当列名相同时,可以直接用列名排序,如果不同可以用位置排序,也可以使用别名使其相同。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值