子查询学习
转自:http://c.biancheng.net/sql/sub-query.html,https://www.cnblogs.com/geaozhang/p/6756825.html
1.介绍
子查询也称“内部查询”或者“嵌套查询”,是指将一个 SELECT 查询(子查询)的结果作为另一个 SQL 语句(主查询)的数据来源或者判断条件。必须放在小括号中。
子查询可以嵌入 SELECT、INSERT、UPDATE 和 DELETE 语句中,也可以和 =、<、>、IN、BETWEEN、EXISTS 等运算符一起使用。
子查询常用在 WHERE 子句和 FROM 子句后边:
- 当用于 WHERE 子句时,根据不同的运算符,子查询可以返回单行单列、多行单列、单行多列数据。子查询就是要返回能够作为 WHERE 子句查询条件的值。
- 当用于 FROM 子句时,一般返回多行多列数据,相当于返回一张临时表,这样才符合 FROM 后面是表的规则。这种做法能够实现多表联合查询。
子查询分类:
①标量子查询(scalar subquery):返回1行1列一个值
②行子查询(row subquery):返回的结果集是 1 行 N 列
③列子查询(column subquery):返回的结果集是 N 行 1列
④表子查询(table subquery):返回的结果集是 N 行 N 列
可以使用的操作符:= > < >= <= <> ANY IN SOME ALL EXISTS。