Oracle子查询就是嵌套查询,把select查询的结果作为另一个select、update或delete语句的条件
它的本质就是where条件查询中的一个表达式。
1. 单行子查询:向外部返回的结果为空或者返回一行。是利用where条件“=”关联查询结果的。
如果单行子查询返回多行会报错。
例如,查询stuinfo和class中班级为“信息科学2班”的所有学生信息。
(1)利用内关联进行查询
select *
from stuinfo a, class b
where a.classno = b.classno and b.classname = '信息科学2班';
(2)利用单行子查询
select * from stuinfo
where stuinfo.classno = (select class.classno from class where class.classname = '信息科学2班');
2.多行子查询:子查询返回多行结果,需要利用关键字 IN、ALL、ANY或者运算符<、>、=等来接收子查询的多行结果。
例如,查询班级表class中所有班级的所有学生信息。
select *
from stuinfo a
where a.classno in