集合运算

SQL作用在关系上的union、intersect、except 运算,对应于数学集合论中的并集、交集、差集运算

并集union

union 关键字能够将两个或多个select 语句的结果连接起来。

(SELECT …)
UNION
(SELECT …)

union 自动消除结果集中的重复记录。为了获得所有的记录行,可以用union all 取代每个union 实例。

union 一般用于:

  • 多个表中有相似的信息,并且需要从这些表中立刻获取记录。

  • 需要从同一个表中获取几组记录,但是表现每组的条件并不容易写在一个单个的where 子句里。

示例:查询课程信息表中第5学期和第6学期的课程名称

(select CName from Course_info where Term=5)
union
(select CName from Course_info where Term=6)

等价写法:

select CName from Course_info where Term=5 or Term=6

交集intersect

用法和union 一样,只是结果取交集。

差集except

用法和union 相同,只是结果取差集。

关于NULL

  • 如果有一个操作数的结果是NULL ,则大多数运算符的求值结果也是NULL

  • NULL 值表达式在函数中被用于操作数时,运算符将产生NULL

  • where 子句中也有相同的情况,where 子句会丢弃那些条件不是TRUE 的记录。

Last updated