oracle中union和union all

union: 对两个结果集进行并集操作, 不包括重复行,相当于distinct, 同时进行默认规则的排序

union all: 对两个结果集进行并集操作, 包括重复行, 即所有的结果全部显示, 不管是不是重复

实际证明

1、准备对应的数据

create table demo(
  id int primary key not null,
  dname varchar2(50) not null,
  age varchar2(50) not null
);

insert into demo values(1,'t1','1');
insert into demo values(2,'t2','2');
insert into demo values(3,'t3','3');
insert into demo values(4,'t4','4');
insert into demo values(5,'t5','5');

2、union和union all进行比较

select * from demo d where d.id > 1
union
select * from demo d where d.id > 4;

select * from demo d where d.id > 1
union all
select * from demo d where d.id > 4;

union的执行结果
在这里插入图片描述
union all的执行结果
在这里插入图片描述
总结
 union: 对两个结果集进行并集操作, 不包括重复行,相当于distinct, 同时进行默认规则的排序,效率不高,因为他对查询的结果集进行了排序和去重
 union all: 对两个结果集进行并集操作, 包括重复行, 即所有的结果全部显示, 不管是不是重复,效率高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值