Sql Server中集合的操作(并集、差集、交集)学习

首先我们做一下测试数据

1、创建测试数据

--创建人员表1--
create table Person1
(
    Uid int identity(1,1) primary key,
    Name varchar(20) not null
)
--创建人员表2--
create table Person2
(
    Uid int identity(1,1) primary key,
    Name varchar(20) not null
)

--插入数据--
insert into Person1 values(‘曹操‘),(‘郭嘉‘),(‘典韦‘),(‘孙权‘),(‘周瑜‘)
insert into Person2 values(‘刘备‘),(‘关羽‘),(‘张飞‘),(‘孙权‘),(‘周瑜‘)

--查询数据--
select * from Person1
select * from Person2

2、测试数据查询结果如下

1)表1和表2的数据

3、集合中的并集、差集和交集

3.1、并集(union)

1)并集的定义

  Union可以对两个或多个结果集进行连接,形成“并集”。子结果集所有的记录组合在一起形成新的结果集。

2)限制条件
  2.1)子结果集要具有相同的结构。
  2.2)字结果集的列数必须相同。
  2.3)子结果集对应的数据类型必须可以兼容。
  2.4)每个子结果集不能包含order by和compute子句

3)  并集的使用

--1、并集 union  --

--1)去掉重复项的并集--
select Name from Person1
union
select Name from Person2

--2)不去掉重复项的并集--
select Name from Person1
union all
select Name from Person2

4)查询的结果

3.2、差集(except)

1)差集的定义

  Except可以对两个或多个结果集进行连接,形成“差集”。返回左边结果集合中已经有的记录,而右边结果集中没有的记录。

2) 限制条件

  2.1)子结果集要具有相同的结构。

  2.2)子结果集的列数必须相同

  2.3)子结果集对应的数据类型必须可以兼容。

  2.4)每个子结果集不能包含order by 和 compute子句。

3)差集的使用

--Except 差集---
select Name from Person1
except
select Name from Person2

4)查询的结果

3.3 、交集(InterSect)

1)交集的定义

  InterSect可以对两个或多个结果集进行连接,形成“交集”。返回左边结果集和右边结果集中都有的记录

2)限制条件

  2.1)子结果集要具有相同的结构。

  2.2)子结果集的列数必须相同

  2.3)子结果集对应的数据类型必须可以兼容。

  2.4)每个子结果集不能包含order by 和 compute子句。

3)交集的使用

--InterSect 交集--
select * from Person1
InterSect
select * from Person2

4)查询的结果

参考网址:

http://www.cnblogs.com/kissdodog/archive/2013/06/24/3152743.html

时间: 2024-07-28 20:23:33

Sql Server中集合的操作(并集、差集、交集)学习的相关文章

sql server中取交集、差集和并集的语法

这里简单总结下在SQL Server中取交集.差集和并集的语法. 交集:INTERSECT(适用于两个结果集) SELECT ID, NAME FROM YANGGB1 INTERSECT SELECT ID, NAME FROM YANGGB2 差集:EXCEPT(适用于两个结果集) SELECT ID, NAME FROM YANGGB1 EXCEPT SELECT ID, NAME FROM YANGGB2 并集:UNION或UNION ALL(适用于两个结果集) -- 不包括重复行,进行

SQL Server中的三种物理连接操作:嵌套循环连接、合并连接、哈希匹配

浅谈SQL Server中的三种物理连接操作 Merge join.Hash join.Nested loop join对比分析 版权声明:本文为博主原创文章,未经博主允许不得转载.

此操作只能由 SQL Server 中拥有配置数据库读取权限的用户在已加入到某个服务器场的计算机上执行

错误提示:此操作只能由 SQL Server 中拥有配置数据库读取权限的用户在已加入到某个服务器场的计算机上执行.若要将此服务器连接到服务器场,请使用 SharePoint 产品配置向导,该向导可从 Microsoft SharePoint 2010 产品的“开始”菜单启动. 问题原因:服务器场系统域帐号webrun密码已过期. 解决办法:设置该系统域帐号密码永不过期.

SQL SERVER中对XML进行操作

一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XML 模型特征(例如文档顺序和递归结构),XML 值以内部格式存储为大型二进制对象 (BLOB). 用户将一个XML数据存入数据库的时候,可以使用这个XML的字符串,SQL Server会自动的将这个字符串转化为XML类型,并存储到数据库中. 随着SQL Server 对XML字段的支持,相应的,T-

浅谈SQL Server中的三种物理连接操作

简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge Join,Hash Join这三种物理连接中的一种.理解这三种物理连接是理解在表连接时解决性能问题的基础,下面我来对这三种连接的原理,适用场景进行描述. 嵌套循环连接(Nested Loop Join) 循环嵌套连接是最基本的连接,正如其名所示那样,需要进行循环嵌套,这种连接方式的过程可以简单的用下图

从算法入手讲解如何在SQL Server中实现最优最简

算法是计算机科学中一个重要的研究方向,是解决复杂问题的关键.在计算机世界中,算法无处不在.数据库是存储数据和执行大批量计算的场所,在数据库中使用一些简单的SQL命令,进行存储.查询.统计.以解决现实世界中的问题已经是屡见不鲜.随着数据量的大幅度增加和业务规则的日益复杂,越来越需要一种专门的方法来满足效率和准确性方面的要求.如何把解决问题的复杂算法转换为数据库能够执行的命令,也是数据库应用技术研究的一个方面.本文以MSSQL中的命令来阐述例子. 数据库中可以存储实体的数据集合,在进行运算时,数据库

SQL Server中的执行引擎入门

简介 当查询优化器(Query Optimizer)将T-SQL语句解析后并从执行计划中选择最低消耗的执行计划后,具体的执行就会交由执行引擎(Execution Engine)来进行执行.本文旨在分类讲述执行计划中每一种操作的相关信息. 数据访问操作 首先最基本的操作就是访问数据.这既可以通过直接访问表,也可以通过访问索引来进行.表内数据的组织方式分为堆(Heap)和B树,其中表中没有建立聚集索引时数据是通过堆进行组织的,这个是无序的,表中建立聚集索引后和非聚集索引的数据都是以B树方式进行组织,

SQL Server中常用的SQL语句

1.概述 2.查询概述 3.单表查询 4.连接查询 5.带有exists的相关子查询 6.SQL的集合操作 7.插入操作 8.删除操作 9.修改操作 10.数据定义 11.视图 1.概述 名词 笛卡尔积.主键.外键 数据完整性 实体完整性:主属性不能为空值,例如选课表中学号和课程号不能为空 参照完整性:表中的外键取值为空或参照表中的主键 用户定义完整性:取值范围或非空限制,例如:性别(男女),年龄(0-130) 表连接 自然连接:与等值连接(a.id=b.id)相比,连接后的表只有一列id,而不

深入浅出SQL Server中的死锁 【转】

简介 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的.理解死锁首先需要对死锁所涉及的相关观念有一个理解. 一些基础知识 要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理解死锁.比如说一个经典的例子就是汽车(主体)对于道路(资源)的征用,如图1所示. 图1.对于死锁的直观理解 在图1的例子中,每队汽车都占有一条道路,但都需要另外一队汽车所占有的另一条道路,因此互相阻塞,谁都无法前行,因此造成了死锁.由这个简单的例子可以看出,发生死锁需要四个必要条件,如下: 1)互斥