子查询
·概念:SQL语句中嵌套select语句,称为嵌套查询,又称子查询。
select * from t1 where column1=(select column1 from t2);
子查询外部的语句可以是insert/update/delete/select的任何一个。
·根据子查询结果不同,分为:
·标量子查询(子查询结果为单个值)
·列子查询(子查询结果为一列)
·行子查询(子查询结果为一行)
·表子查询(子查询结果为多行多列)
·根据子查询位置,分为:where之后、from之后、select之后。
标量子查询
子查询返回的结果是单个值(数字、字符串、日期等),最简单的形式,这种子查询成为标量子查询。常用的操作符:= <> > >= < <=
列子查询
子查询返回的结果是一列(可以是多行),这种子查询称为列子查询。
常用的操作符:in,not in,any,some,all
行子查询
子查询返回的结果是一行(可以是多列),这种子查询称为行子查询。
常见操作符:=、<>、in、not in
表子查询
子查询返回的结果是多行多列,这种子查询称为表子查询。
常用操作符:in
这个表子查询经常出现在from之后,把表子查询返回的结果作为一张临时表再和其它表进行联查操作。