SQL必知必会(14)——组合查询

本文深入讲解了SQL中的组合查询概念,包括如何使用UNION操作符将多条SQL查询结果组合成一个结果集,以及组合查询的规则和注意事项。探讨了在不同场景下组合查询的应用,如从不同表返回结构数据和对单一表执行多个查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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规则

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

2.3、包含或取消重复的行

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

2.4、对组合查询结果排序

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值