SQL 必知必会 Chapter 14 组合查询
14.1 组合查询
-
利用UNION操作符将多条SELECT语句组合成一个结果集
-
SQL允许执行多个查询,并将结果作为一个查询结果集返回
-
复核查询(compound query)
-
在一个查询中从不同的表返回结构数据
-
对一个表执行多个查询,按一个查询返回数据
14.2 创建组合查询
- 可用UNION 操作符来组合数条SQL 查询。利用UNION,可给出多条
SELECT 语句,将它们的结果组合成一个结果集
14.3 使用UNION
-- ,假如需要Illinois、Indiana 和Michigan 等美国几个州的所有顾
-- 客的报表,还想包括不管位于哪个州的所有的Fun4All
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI');
UNION
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_name = 'Fun4All';
# 同样效果的查询语句:
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')
OR cust_name = 'Fun4All';
ORDER BY cust_name, cust_contact;
#使用UNION可能会有数目的限制
-
UNION 必须由两条或两条以上的SELECT 语句组成,语句之间用关键
字UNION 分隔(因此,如果组合四条SELECT 语句,将要使用三个UNION关键字 -
UNION 中的每个查询必须包含相同的列、表达式或聚集函数(不过,
各个列不需要以相同的次序列出) -
列数据类型必须兼容:类型不必完全相同,但必须是DBMS 可以隐含
转换的类型 -
包含或取消重复的行,UNION 从查询结果集中自动去除了重复的行
-
使用UNION ALL,DBMS 不取消重复的行
-
对组合查询结果排序,SELECT 语句的输出用ORDER BY 子句排序。在用UNION 组合查询时,只能使用一条ORDER BY 子句,它必须位于最后一条SELECT 语句之后
14.3 小结
- 讲授如何用UNION 操作符来组合SELECT 语句。利用UNION,可
以把多条查询的结果作为一条组合查询返回,不管结果中有无重复。使
用UNION 可极大地简化复杂的WHERE 子句,简化从多个表中检索数据的
工作