oracle中union和union all的区别

经常写sql的同学可能会用到union和union all这两个关键词, 可能你知道使用它们可以将两个查询的结果集进行合并,

那么二者有什么区别呢? 下面我们就简单的分析下.

[ 比较 ]

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

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

下面我们举一个简单的例子来证明上面的结论:

1. 准备数据:

drop table student;

create table student
(
     id int primary key,
     name nvarchar2(50) not null,
     score number not null
);

insert into student values(1,'Aaron',78);
insert into student values(2,'Bill',76);
insert into student values(3,'Cindy',89);
insert into student values(4,'Damon',90);
insert into student values(5,'Ella',73);
insert into student values(6,'Frado',61);
insert into student values(7,'Gill',99);
insert into student values(8,'Hellen',56);
insert into student values(9,'Ivan',93);
insert into student values(10,'Jay',90);

commit;

2. 比较不同点

查询比较①

-- union all
select * from student where id < 4
union all
select * from student where id > 2 and id < 6

-- union
select * from student where id < 4
union
select * from student where id > 2 and id < 6

union all 查询结果:

union 查询结果:

通过比较不难看出, union all不会去掉重复记录, 而union去掉了重复的记录.

查询比较②

-- union all
select * from student where id > 2 and id < 6
union all
select * from student where id < 4

-- union
select * from student where id > 2 and id < 6
union
select * from student where id < 4

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索insert
, select
, union
, union all
, student
, values
, into
去掉重复行
oracle union all、oracle union all用法、oracle中union all、oracle sql union all、oracle中的union all,以便于您获取更多的相关知识。

时间: 2024-09-21 13:39:33

oracle中union和union all的区别的相关文章

Oracle中的Char与Varchar的区别和实例

1. CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串"abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),在数据库中它是以空格占位的,而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储. 2.CHAR的效率比VARCHAR2的效率稍高.看来cscm_number应该设成 char(19) 3.目前VARCHAR是VARCHAR2的同义词.工业标准的VARC

Oracle中会话与事务有什么区别?

        一个会话可以启动多个事务,会话是session,指一次连接.         事务是指一个操作单元,要么成功,要么失败,没有中间状态.         会话中可以完成多个事务. 例如:         会话好比,在应用程序中连接数据库要执行连接,然后会关闭,这算一次会话.         事务呢,就好比在打开会话后要执行程序中的某一个或多个对数据库进行的操作.         事物的最好例子就是转账,从一个账户赚钱到另一个账户,两张表的数据修改,要么全成功,要门全变回原样.  

Oracle中Union与Union All的区别(适用多个数据库)_oracle

Union 与 Union ALL 的作用都是合并 SELECT 的查询结果集,那么它们有什么不同呢? Union 将查询到的结果集合并后进行重查,将其中相同的行去除.缺点:效率低: 而Union ALL 则只是合并查询的结果集,并不重新查询,效率高,但是可能会出现冗余数据. 我们举个例子来说明一下: 比如数据库中有两张表 tab1 和 tab2. tab1 中的数据有: 小王 小张 tab2 中的数据有: 小王 小李 执行查询: 复制代码 代码如下: SELECT * FROM tab1 UN

SQL中UNION 与 UNION ALL 的区别

区别 SQLServer2000中UNION与UNION ALL的区别 UNION 运算符: 将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行.这与使用联接组合两个表中的列不同. 使用 UNION 组合两个查询的结果集的两个基本规则是: 所有查询中的列数和列的顺序必须相同. 数据类型必须兼容.        这种多结果的查询组合为单一结果集在实际中应用的非常方便.但在应用中也有有着问题,如下实例可以进一步说明问题. 问题描述:        为了进一步分析与统计企

union-link中使用Union和使用Concat的区别在哪里?两者哪个效率高?

问题描述 link中使用Union和使用Concat的区别在哪里?两者哪个效率高? link中使用Union和使用Concat的区别在哪里?两者哪个效率高? 解决方案 两者算法不同,没有可比性. 解决方案二: Union会去掉重复的数据,而Concat不会,直接相连

SQL中JOIN和UNION区别、用法及示例介绍_MsSql

1.JOIN和UNION区别 join 是两张表做交连后里面条件相同的部分记录产生一个记录集, union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集 . JOIN用于按照ON条件联接两个表,主要有四种: INNER JOIN:内部联接两个表中的记录,仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行.我理解的是只要记录不符合ON条件,就不会显示在结果集内. LEFT JOIN / LEFT OUTER JOIN:外部联接两个表中的记录,并包含左表中的全部记录.如果左表

数据库中union 与union all 的区别_数据库其它

今天晚上在操作两个表时才发现两个的区别.呵呵. union 将两个表连接后删除其重复的项: union all 将两个表连接都不删除其重复的项. 这个东东很简单.不过也记录一哈 .实在是一个小小的收获. 补充资料: 数据库中,UNION和UNION ALL都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同. UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果.实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史

SQL中JOIN和UNION区别、用法及示例介绍

1.JOIN和UNION区别 join 是两张表做交连后里面条件相同的部分记录产生一个记录集, union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集 . JOIN用于按照ON条件联接两个表,主要有四种: INNER JOIN:内部联接两个表中的记录,仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行.我理解的是只要记录不符合ON条件,就不会显示在结果集内. LEFT JOIN / LEFT OUTER JOIN:外部联接两个表中的记录,并包含左表中的全部记录.如果左表

MySQL中union和join语句使用区别的辨析教程_Mysql

union和join是需要联合多张表时常见的关联词,具体概念我就不说了,想知道上网查就行,因为我也记不准确. 先说差别:union对两张表的操作是合并数据条数,等于是纵向的,要求是两张表字段必须是相同的(Schema of both sides of union should match.).也就是说如果A表中有三条数据,B表中有两条数据,那么A union B就会有五条数据.说明一下union 和union all的差别,对于union如果存在相同的数据记录会被合并,而union all不会合