SQL 技术全面解析与实践
1. SQL 子查询的使用
1.1 可包含子查询的语句类型
子查询可用于以下类型的语句:
- SELECT
- INSERT
- UPDATE
- DELETE
1.2 子查询的定义
子查询是一个嵌入式的 SELECT 语句,它作为访问第二个表中数据的通道。子查询返回的数据被主语句用于满足该语句定义的任何条件。
1.3 SELECT 语句中可包含子查询的子句
在 SELECT 语句中,可在以下子句中包含子查询:
- SELECT
- WHERE
- HAVING
1.4 WHERE 子句中子查询的分类
WHERE 子句中的子查询可分为两类:
- 可返回多行的子查询
- 只能返回一个值的子查询
1.5 与返回多行的子查询不能使用的谓词
与返回多行的子查询不能使用的谓词是比较谓词(Comparison predicates)。
1.6 EXISTS 条件为真的情况
当子查询返回一行或多行时,EXISTS 条件为真;否则为假。
1.7 比较谓词可比较的数据类型
除了数字,比较谓词还可以比较字符串数据。
1.8 允许使用返回多行子查询的谓词
允许使用返回多行子查询的谓词有:
- IN 和 EXISTS 谓词
- SOME、ANY 和 ALL 谓词
- 量化