SQL必知必会——组合查询(十四)

1、组合查询

SQL允许执行多个查询(多条SQL语句),并将结果作为一个查询结果集返回。这些组合查询称为并或复合查询。

主要有两种情况需要使用组合查询:
1、在一个查询中从不同的表返回结构数据
2、对一个表执行多个查询,按一个查询返回数据

注意
1、组合相同表的两个查询所完成的工作与具有多个WHERE子句条件的一个查询完成的工作相同。

2、创建组合查询

可用UNION操作符来组合数条SQL查询。利用UNION,可给出多条SELECT语句,将他们的结果组合成一个结果集。

2.1、使用UNION

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语句组成,之前用UNION关键字分隔。UNION指示DBMS执行这两条SELECT语句,并把输出组合成一个查询结果集

2.2、UNION规则

  • UNION必须用两条或两条以上的SELECT语句组合,语句之间用关键字UNION分隔。
  • UNION中的每个查询必须包含相同的列,表达式或聚集函数(不过,各个列不需要以相同的次序列出)
  • 列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含转换的类型

2.3、包含或取消重复的行

使用UNION时,重复的行会被自动取消,这是UNION的默认行为,如果愿意也可以改变他。事实上,如果想返回所有的行匹配,可使用UNION ALL而不是UNION

2.4、对组合查询结果排序

SELECT语句的输出用order by子句排序。再用union组合查询时,只能使用一条order by子句,他必须位于最后一条select语句之后。对于结果集,不存在用一种方式排序一部分,而又用另一种方式排序另一部分

猜你喜欢

转载自blog.csdn.net/qq_28285403/article/details/94638003