`

sql ms server数据库中UNION ALL和UNION的区别

 
阅读更多


union 将两个表连接后删除其重复的项;

union all 将两个表连接都不删除其重复的项。



数据库中,UNION和UNION ALL都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。

UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如:

select * from users1 union select * from user2
这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。

而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL,如下:

select * from user1 union all select * from user2


SELECT     ID, imsi, encryption_key_version, integrity_key_version, a3, a8, sqn, amf
FROM         dbo.acrare_00
UNION ALL
SELECT     ID, imsi, encryption_key_version, integrity_key_version, a3, a8, sqn, amf
FROM         dbo.acrare_01
UNION ALL
SELECT     ID, imsi, encryption_key_version, integrity_key_version, a3, a8, sqn, amf
FROM         dbo.acrare_02
UNION ALL
SELECT     ID, imsi, encryption_key_version, integrity_key_version, a3, a8, sqn, amf
FROM         dbo.acrare_03
UNION ALL
SELECT     ID, imsi, encryption_key_version, integrity_key_version, a3, a8, sqn, amf
FROM         dbo.acrare_04
UNION ALL
SELECT     ID, imsi, encryption_key_version, integrity_key_version, a3, a8, sqn, amf
FROM         dbo.acrare_05
UNION ALL
SELECT     ID, imsi, encryption_key_version, integrity_key_version, a3, a8, sqn, amf
FROM         dbo.acrare_06
UNION ALL
SELECT     ID, imsi, encryption_key_version, integrity_key_version, a3, a8, sqn, amf
FROM         dbo.acrare_07
UNION ALL
SELECT     ID, imsi, encryption_key_version, integrity_key_version, a3, a8, sqn, amf
FROM         dbo.acrare_08
UNION ALL
SELECT     ID, imsi, encryption_key_version, integrity_key_version, a3, a8, sqn, amf
FROM         dbo.acrare_09

分享到:
评论

相关推荐

    SQL SERVER 数据库实用SQL语句

    本文总结了 SQL SERVER 数据库中的一些实用 SQL 语句,涵盖了排序、分页、获取当前数据库信息、查询某一个表的字段和数据类型、事务处理、全文匹配查询、计算执行 SQL 语句查询时间等方面。 一、排序 在 SQL ...

    论MS SQL Server数据库查询优化技巧.pdf

    MSSQL Server数据库查询优化技巧主要...上述知识点涵盖了MS SQL Server数据库查询优化的多个方面,包括索引的建立、数据表的设计、查询条件的恰当使用等,能够帮助数据库管理员或开发人员有效提升数据库的查询效率。

    SQL Server 数据库实用SQL语句

    在SQL Server数据库中,了解和熟练运用SQL语句是管理和操作数据的关键。下面将详细解析提供的实用SQL语句以及相关的知识点: 1. **查看指定表的外键约束**: 使用`SELECT * FROM sysobjects WHERE parent_obj IN ...

    sqlserver 全库查找存储过程

    在SQL Server数据库管理系统中,存储过程是预编译的SQL语句集合,它们可以执行复杂的数据库操作,提高数据处理效率并提供安全性。标题"sqlserver 全库查找存储过程"表明我们将讨论如何在SQL Server中查找数据库中的...

    MS SQL Server中大数据量表的查询优化

    在MS SQL Server环境中如何有效处理记录条数超过2000万且每日增加20万条的数据表,这是许多开发人员面临的挑战。本文将通过实际案例来探讨这个问题,并提供一种解决方案,同时也讨论了该方案可能带来的问题及适用...

    使用Sql Server中所遇到的问题处理及相应知识点整理

    需要注意的是,`NOW()`函数主要用于Access数据库中,而不是SQL Server。 ```sql SELECT GETDATE() AS CurrentDateTime; ``` ##### (六)临时表的应用 **创建与使用临时表:** 临时表可以提高查询效率并简化...

    在MS SQL Server中实现多级树

    在MS SQL Server中实现多级树结构是一种常见的需求,特别是在数据组织和管理中。这种结构通常用于构建层次化的数据模型,如公司组织架构、产品分类、文件系统等。本篇文章将详细探讨如何在SQL Server环境下设计和...

    分布式数据库系统管理与设计实验报告

    通过这个实验,学生能够深入理解分布式数据库的设计原则和实现方法,以及如何在MS SQL Server 2000中有效地管理和维护这样的系统。这不仅提升了技术能力,也为解决实际业务场景中的大规模数据管理和处理问题奠定了...

    MS、ORACLE等SQL语句大全

    备份数据库在SQL Server中通常涉及到`sp_addumpdevice`存储过程和`BACKUP DATABASE`命令,如示例所示,用来创建备份设备并执行数据库备份。 创建新表是数据存储的核心。`CREATE TABLE`语句允许你定义表的结构,包括...

    SELECT语句的应用 - MS SQL

    MS SQL,全称为Microsoft SQL Server,是微软公司推出的一种基于SQL标准的关系数据库管理系统。本主题将聚焦于SELECT语句在MS SQL中的应用,这是一种用于从数据库中检索数据的关键命令。 一、SELECT语句基础 ...

    FSharp.Data.SqlClient:一组F#类型提供程序,用于对MS SQL数据库进行静态类型的访问

    FSharp.Data.SqlClient-Microsoft SQL Server的类型提供程序通过 ,该库以类型安全的方式向F#代码公开SQL Server数据库对象。 您可以在Visual Studio附带的F#Interactive中引用它#r " nuget: FSharp.Data....

    程序员的SQL金典.rar

     本书特色:主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析;详细讲解数据库对增、删、改、查等SQL的支持并给出了相应的SQL应用案例;透彻分析函数...

    SQL21天自学通

    - `UNION`和`UNION ALL`:用于合并两个或多个SELECT语句的结果集,并去除重复行或保留重复行。 4. **子查询和联接**: - 子查询:嵌套在其他SQL语句内部的查询,可以用于SELECT、INSERT、UPDATE、DELETE和SET子句...

    [翻译]SQL注射技术总结文档

    例如,在Oracle、MySQL、MS Access和MS SQL Server中,攻击者可以查询特定的系统表来获取数据库对象、视图、表列和触发器的信息。 5、抓取密码 攻击者可以利用注入语句尝试获取用户密码。这通常涉及到构建复杂的...

    SQL21日自学通

    SQL 在编程中的应用 27 第二天查询— — SELECT 语句的使用 30 目标 30 背景 30 一般的语法规则 30 你的第一个查询 33 总结 37 问与答 38 校练场 38 练习 39 第三天表达式条件语句与运算 40 第四天函数对数据的...

    sql 遞迴寫法 (webcs cs department 如何知道最上層department)1

    在MS SQL Server中,我们可以使用Common Table Expression (CTE) 结合递归来实现这个功能。以下是几种不同的解决方案: **解法1:列出某个部门代码以上的所有部门** ```sql WITH unitLevel AS ( SELECT id, code, ...

Global site tag (gtag.js) - Google Analytics