也叫内部查询,先于主查询执行。
注意:子查询的结果被主查询使用。
子查询可以嵌入where、having、from子句中。
子查询可以【单独执行】。
select list from table where expr operator(select list from table);
expr operato包括比较运算符:
①单行运算符
<,>,=,<>,<=,>=
例:查询出A表中比张三年龄更大的其他同学。
select name, age from A where age>(select age from A where name="张三");
②多行运算符
in,any,all
表示和子查询的【任意】一行结果进行比较,满足其中一个条件即可。
①**< any**:小于子查询结果集中的任意一个,即小于最大值即可。
②**> any**:大于子查询结果集中的任意一个,即大于最小值即可。
③**= any**:等于子查询结果集中的任意一个,相当于in。
表示和子查询的所有结果进行比较,每一行都必须满足条件。
①**< all**:小于子查询结果集中的所有行,即小于最小值即可。
②**> all**:大于子查询结果集中的所有行,即大于最大值即可。
③**= all**:等于子查询结果集中的所有行。