`

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应用案例;透彻分析函数...

    SQL注射技术总结文档

    4. **MSSQL Server数据库**: - `sysobjects`:列出数据库中的所有对象。 - `syscolumns`:列出表的列信息。 - `systypes`:列出数据库中的数据类型。 - `sysdatabases`:列出数据库信息。 #### 五、抓取密码 ...

    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金典7-8

     10.4.2 MS SQL Server中的自动增长字段  10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...

    SQL21自学通.pdf

    - **导入导出数据**:从外部数据源(如MS Access、SQL Server等)导入数据或将数据导出到外部文件。 #### 十一、创建和操作表 - **创建数据库**:使用CREATE DATABASE语句。 - **设计数据库**:考虑数据模型、表间...

    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