子查询与视图
掌握复杂子查询、视图设计与权限控制
70%
🔍 子查询类型
👁️ 视图的创建与应用
🧠 子查询与视图进阶
💡 综合练习与参考答案
子查询类型
子查询可分为标量、行、表、相关子查询,常与IN/EXISTS等关键字结合:
-- 标量子查询
SELECT name FROM students WHERE class_id = (SELECT id FROM classes WHERE name = '高三一班');
-- 表子查询
SELECT * FROM (SELECT * FROM students WHERE age > 18) t;
-- 相关子查询
SELECT name FROM students s WHERE score > (SELECT AVG(score) FROM students WHERE class_id = s.class_id);
-- IN/EXISTS用法
SELECT name FROM students WHERE class_id IN (SELECT id FROM classes WHERE grade = 3);
SELECT name FROM students WHERE EXISTS (SELECT 1 FROM scores WHERE scores.student_id = students.id);
- 相关子查询可引用外层表字段
- EXISTS适合判断是否存在关联数据