oracle中union和union all的区别和使用

 时间:2026-02-17 20:24:20

1、步骤一:首先手下连个关键字的区别

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

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

2、步骤二:通过实验来看看,首先创建数据

drop table student2;

create table student2

(

     id int primary key,

     name varchar2(50) not null,

     age number not null

);

insert into student2 values(1,'张三',23);

insert into student2 values(2,'李四',21);

insert into student2 values(3,'王二',20);

insert into student2 values(4,'郭经',20);

insert into student2 values(5,'王伟',23);

insert into student2 values(6,'Frado',24);

insert into student2 values(7,'伍梅',23);

insert into student2 values(8,'张伦',23);

insert into student2 values(9,'郭飞',21);

insert into student2 values(10,'刘鹏飞',22); 

commit;

oracle中union和union all的区别和使用

3、步骤三:区别1

-- union

select * from student2 where id < 4

union

select * from student2 where id > 2 and id < 6

看到结果中ID=3的只有一条

-- union all 

select * from student2 where id < 4

union all

select * from student2 where id > 2 and id < 6

结果中ID=3的结果有两个union和union all的区别在于union all取结果的交集之后不会进行去重

oracle中union和union all的区别和使用

oracle中union和union all的区别和使用

4、步骤四:区别二

-- union all

select * from student2 where id > 2 and id < 6

union all

select * from student2 where id < 4

-- union

select * from student2 where id > 2 and id < 6

union

select * from student2 where id < 4

从结果中可以看到union还对获取的结果进行排序操作

oracle中union和union all的区别和使用

oracle中union和union all的区别和使用

5、步骤五:总结:union all只是合并查询结果,并不会进行去重和排序操作,在没有去重的前提下,使用union all的执行效率要比union高

  • 怎样当好综合处长
  • 食堂的员工怎么激励?
  • 奢侈品牌YSL网红链条包鉴定指南
  • 中学生必读书目之传记
  • uc小游戏六角拼拼怎么玩 六角拼拼玩法攻略
  • 热门搜索
    春节去哪旅游好 西递宏村旅游攻略 海南旅游卫视 龙脊梯田旅游 旅游网站制作 江西宜春旅游 旅游英语情景对话 春秋旅游官网 中国旅游线路 丹巴旅游攻略