搭建网站的五大步骤,郑州商城网站设计,建网站价格,景区微网站建设费用关注公众号#xff1a;SQL数据库开发#xff0c;了解更多SQL高级知识 集合的定义 集合是由一个和多个元素构成的整体#xff0c;在SQL Server中的表就代表着事实集合#xff0c;而其中的查询就是在集合的基础上生成的结果集。SQL Server的集合包括交集#xff08;INTERSEC… 关注公众号SQL数据库开发了解更多SQL高级知识 集合的定义 集合是由一个和多个元素构成的整体在SQL Server中的表就代表着事实集合而其中的查询就是在集合的基础上生成的结果集。SQL Server的集合包括交集INTERSECT并集UNION差集EXCEPT。 交集INTERSECT 可以对两个或多个结果集进行连接形成“交集”。返回左边结果集和右边结果集中都有的记录且结果不重复(这也是集合的主要特性) 交集限制条件 子结果集要具有相同的结构。子结果集的列数必须相同子结果集对应的数据类型必须可以兼容。每个子结果集不能包含order by 和 compute子句。 交集示例 我们用以下两个表中的数据作为示例 取以上两个表的交集我们可以这样写SQL SELECT 结果如下 其中北京和上海是上面两个表共有的结果集。 这和我们的内连接(INNER JOIN)有点类似以上SQL也可以这样写 SELECT 结果与上面结果相同。 并集UNION 可以对两个或多个结果集进行连接形成“并集”。子结果集所有的记录组合在一起形成新的结果集。其中使用UNION可以得到不重复去重的结果集使用UNION ALL可能会得到重复不去重的结果集。 并集限制条件 子结果集要具有相同的结构。子结果集的列数必须相同子结果集对应的数据类型必须可以兼容。每个子结果集不能包含order by 和 compute子句。 UNION示例 还是以上面的City1和City2为例取两个表的并集我们可以这样写SQL SELECT 结果如下 我们看到北京和上海去掉了重复的记录只保留了一次 UNION ALL示例 我们再看看使用UNION ALL会怎么样 SELECT 结果如下 与上面的UNION相比UNION ALL仅仅是对两个表作了拼接而已北京和上海依然在下面重复出现了而且细心的读着应该发现了UNION还会对结果进行排序而UNION ALL不会。 差集EXCEPT 可以对两个或多个结果集进行连接形成“差集”。返回左边结果集合中已经有的记录而右边结果集中没有的记录。 差集限制条件 子结果集要具有相同的结构。子结果集的列数必须相同子结果集对应的数据类型必须可以兼容。每个子结果集不能包含order by 和 compute子句。 差集示例 以City1和City2为例我们想取City1左表和City2右表的差集可以这样写SQL SELECT 结果如下 我们看到因为北京和上海在两个表都存在差集为了只显示左表中有的而右表中没有的就把这两个给过滤掉了。 此外我们常说的关联条件其实也是集合的一种是通过子表的笛卡尔积按不同的关联条件过滤之后得到的结果集。有兴趣的同学可以阅读一下《Microsoft SQL SERVER 2008技术内幕 T-SQL查询》这本书中有关于集合论的具体阐述。 批注 集合是我们数据处理过程中的理论基础可以通过集合的观点去很好的理解不同的查询语句。每一个物理表就是一个集合当我们要对表进行操作的时候将它们看成对集合的操作就很好理解了。