SQL 必知必会·笔记<12>组合查询
2013-09-17 22:59
281 查看
什么是组合查询
SQL 通过执行多个查询(多条SELECT 语句),并将结果作为一个查询结果集返回。这些组合查询通常称为并(union)或复合查询(compound query)。
什么时候使用组合查询
一般以下两种情况需要使用组合查询:
在一个查询中从不同的表返回结构数据;
对一个表执行多个查询,按一个查询返回数据。
提示:组合查询和多个WHERE 条件
多数情况下,组合相同表的两个查询所完成的工作与具有多个WHERE子句条件的一个查询所完成的工作相同。换句话说,任何具有多个WHERE 子句的SELECT 语句都可以作为一个组合查询
可用UNION 操作符来组合数条SQL 查询。利用UNION,可给出多条SELECT 语句,将它们的结果组合成一个结果集。
使用UNION示例:
UNION规则
UNION 必须由两条或两条以上的SELECT 语句组成,语句之间用关键字UNION 分隔。
UNION 中的每个查询必须包含相同的列、表达式或聚集函数(不过,各个列不需要以相同的次序列出)。
列数据类型必须兼容:类型不必完全相同,但必须是DBMS 可以隐含转换的类型(例如,不同的数值类型或不同的日期类型)。
包含或取消重复的行
默认情况下UNION 从查询结果集中自动去除了重复的行,,如果想返回所有的匹配行,可使用UNION ALL 替换UNION即可。
使用UNION ALL:
提示:UNION 与WHERE
UNION 几乎总是完成与多个WHERE 条件相同 的工作。UNION ALL 为UNION 的一种形式,它完成WHERE 子句完成不了的工作。如果确实需要每个条件的匹配行全部出现(包括重复行), 就必须使用UNION ALL,而不是WHERE。
提示:操作多个表
UNION 在需要组合多个表的数据时很有用,即使是有不匹配列名的表,在这种情况下,可以将UNION 与别名组合,检索一个结果集。
SQL 通过执行多个查询(多条SELECT 语句),并将结果作为一个查询结果集返回。这些组合查询通常称为并(union)或复合查询(compound query)。
什么时候使用组合查询
一般以下两种情况需要使用组合查询:
在一个查询中从不同的表返回结构数据;
对一个表执行多个查询,按一个查询返回数据。
提示:组合查询和多个WHERE 条件
多数情况下,组合相同表的两个查询所完成的工作与具有多个WHERE子句条件的一个查询所完成的工作相同。换句话说,任何具有多个WHERE 子句的SELECT 语句都可以作为一个组合查询
1. 创建组合查询
可用UNION 操作符来组合数条SQL 查询。利用UNION,可给出多条SELECT 语句,将它们的结果组合成一个结果集。
使用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';
UNION规则
UNION 必须由两条或两条以上的SELECT 语句组成,语句之间用关键字UNION 分隔。
UNION 中的每个查询必须包含相同的列、表达式或聚集函数(不过,各个列不需要以相同的次序列出)。
列数据类型必须兼容:类型不必完全相同,但必须是DBMS 可以隐含转换的类型(例如,不同的数值类型或不同的日期类型)。
包含或取消重复的行
默认情况下UNION 从查询结果集中自动去除了重复的行,,如果想返回所有的匹配行,可使用UNION ALL 替换UNION即可。
使用UNION ALL:
SELECT cust_name, cust_contact, cust_email FROM Customers WHERE cust_state IN ('IL','IN','MI') UNION ALL SELECT cust_name, cust_contact, cust_email FROM Customers WHERE cust_name = 'Fun4All';
提示:UNION 与WHERE
UNION 几乎总是完成与多个WHERE 条件相同 的工作。UNION ALL 为UNION 的一种形式,它完成WHERE 子句完成不了的工作。如果确实需要每个条件的匹配行全部出现(包括重复行), 就必须使用UNION ALL,而不是WHERE。
2. 对组合查询结果排序
使用UNION 组合查询时,只能使用一条ORDER BY 子句,它必须位于最后一条SELECT 语句之后提示:操作多个表
UNION 在需要组合多个表的数据时很有用,即使是有不匹配列名的表,在这种情况下,可以将UNION 与别名组合,检索一个结果集。
相关文章推荐
- SQL 必知必会·笔记<13>插入数据
- SQL 必知必会·笔记<16>使用视图
- oracle开发之<<SQL Cookbook>>学习笔记整理:第二章 查询结果排序
- SQL 必知必会·笔记<8>分组数据
- SQL 必知必会·笔记<18>管理事务处理
- SQL 必知必会·笔记<4>使用通配符过滤数据
- SQL 必知必会·笔记<5>创建计算字段
- SQL 学习笔记<三> SELECT之连接查询
- SQL 必知必会·笔记<3>过滤数据
- SQL 必知必会·笔记<7>汇总数据——使用聚合函数
- SQL 必知必会·笔记<15>创建和操纵表
- SQL 必知必会·笔记<9>使用子查询
- SQL 必知必会·笔记<17>使用存储过程
- SQL 必知必会·笔记<19>使用游标
- SQL 必知必会·笔记<11>创建高级联结
- SQL 必知必会·笔记<20>高级SQL特性
- SQL 必知必会·笔记<1>了解SQL
- SQL 必知必会·笔记<2>检索和排序数据
- SQL 必知必会·笔记<10>联结表
- java 从零开始,学习笔记之基础入门<SQL_Server_常用查询>(二十二)