第十四章 使用子查询定义未确定数据
子查询也叫嵌套查询,是位于另一个查询的WHERE子句里的查询,它返回的数据通常在主查询里作为一个条件,从而进一步限制数据库返回的数据。它可以用于SELECT,UPDATE, DELETE, INSERT语句。
在某些情况下,子查询能够间接的基于一个或多个条件把多个表里的数据关联起来,从而代替结合操作。当使用子查询时,子查询首先被执行,然后主查询再根据其返回的结果继续执行。子查询的结果用于在主查询的WHERE子句里处理表达式。子查询可以用于主查询的WHERE子句或HAVING子句。
标准查询的规则同样也适用于子查询。
子查询必须遵循以下规则:
子查询必须位于圆括号里。
除非主查询里有多个字段让子查询进行比较,否则子查询的SELECT子句里只能有一个字段。
子查询里不能使用ORDER BY子句。在子查询里,我们可以利用GROUP BY子句实现ORDER BY子句的功能。
返回多条记录的子查询只能与多值操作符(比如IN)配合使用。
SELECT列表里不能引用任何BLOB,ARRAY,CLOB,NCLOB类型的值。