SQL Server笔记(五)

文献种类:专题技术文献;
开发工具与关键技术: VS、JS
作者:方建恒 ;年级:20级 ;撰写时间: 2022 年 4 月 28日
今天我继续给大家分享一下我总结的一些SQL Server的笔记,
接下来我们来了解一下SQL Server中的集合运算符:

  1. 并集(union):用于将两个select语句的结果组合到一个结果集中,
    该结果集包括属于union中select语句的所有行。用法如下:

注:两个查询中列的数量必须相同,并且相应列的数据类型必须相同或兼容。

UNION 运算符会从结果集中删除所有重复的行。如果你要保留重复的行,

则需要明确指定all关键字。

在表连接中,join会水平附加结果集,而union则会垂直附加结果集。

2. 交集(Intersect):用于组合两个或多个查询的结果集,并返回两个查询输出的重复的行。

用法如下:

sql server union all 之后特别慢 sql server union用法_数据库架构

注:和并集差不多,交集的两个查询必须具有相同的列数和顺序,

并且相应列的数据类型必须相同或兼容。

3. 差集(except):用于比较两个查询的结果集,

并返回第一个查询中不是由第二个查询输出的不同行。

即A1中有1,2,3;A2中有2,3,4,它们的差集就是1;用法如下:

sql server union all 之后特别慢 sql server union用法_SQL_02

注:在查询差集中它会删除重复行,而且差集的结果取决于两个查询的前后关系。

当表1与表2比较某行记录是否相等时,会认为取值为NULL的列是相等的列。

4. 集合运算符的优先级:

优先级:Intersect > union = except。

当同时出现多个集合运算符时,它会首先计算Intersect,

然后从左到右的出现顺序依次处理优先级的相同的运算。

当然你可以使用圆括号控制集合运算的优先级,它具有最高的优先级。

接下来我们来了解一下SQL的分组语句(group by):

group by语句是将查询结果按某一列或多列的值分组的,值相等的为一组。

用法如下:

sql server union all 之后特别慢 sql server union用法_结果集_03

注:你在进行查询时所查询的列必须包含在聚合函数或者group by语句内,

否则SQL会报错,如下图:

sql server union all 之后特别慢 sql server union用法_优先级_04

要想解决的话只需要在group by语句后面添加上缺少的列就可以了。
以上就是今天分享的部分我的SQL Server的笔记。