第1关:不相关子查询(1)
任务描述
本关任务:在 TESTDB 数据库中查询指定数据。
相关知识
子查询
在SQL中经常使用在“FROM/WHERE”字句中包含一个形如“SELECT-FROM-WHERE”的查询块,这样的查询块称为子查询或嵌套查询,包含子查询的语句称为父查询或外部查询。
子查询分为相关子查询和不相关子查询。下面通过举例介绍不相关子查询。
这里有三张表:
学生表student(姓名,学号,性别,年龄,系别)
教师表teacher(姓名,工号,性别,年龄,婚否)
选课表course(课程名,课号,学号,任课教师编号,成绩)
不相关子查询
子查询可独立执行,不依赖于父查询表的查询,称为不相关子查询。
执行过程:
(1)先执行子查询,其结果不会被显示,而是返回给外部查询来作为外部查询的查询条件;
(2)根据子查询的结果,执行外部查询。
例:查询年龄小于所有学生平均年龄的学生
SELECT *
FROM student
WHERE 年龄 < ( SELECT AVG(年龄)
FROM student
)
本例中只用到了一个表student,先执行子查询,计算出所有学生的平均年龄,再将该平均年龄作为外部查询的查询条件,进而查询出比所有学生平均年龄小的学生的信息。
再举一个例子:查询“刘小晖”
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



