子查询
了解子查询和相关操作符
概述
子查询又称“嵌套查询”,就是把某次查询的结果当作另一次查询的数据源,或者用于构成条件判断表达式。
语法
要把一段查询语句作为子查询其实很简单,只需要将它用圆括号 () 包裹起来即可,示例如下:
(SELECT ...)相关操作符
下面的操作符都必须与子查询一起构成一个条件表达式。
ALL
在比较过程中,必须满足子查询结果的全部数据记录(实际上是对极值进行比较)。需要与比较运算符搭配使用。
-- 查询年龄比所有男生都要小的女生
SELECT * FROM student
WHERE 性别='女' AND 出生日期 < ALL (
SELECT 出生日期 FROM student
WHERE 性别='男'
);ANY
在比较过程中,只要满足子查询结果的任意一条数据记录即可(一旦满足就结束比较)。需要与比较运算符搭配使用。
-- 查询年龄比最小的男生要大的所有女生
SELECT * FROM student
WHERE 性别='女' AND 出生日期 > ANY (
SELECT 出生日期 FROM student
WHERE 性别='男'
);IN
检查某个值是否存在于子查询结果中。
-- 查询“小明”的所选课程
SELECT * FROM sc
WHERE 学号 IN (
SELECT 学号 FROM student
WHERE 姓名='小明'
);EXISTS
检查子查询结果是否有数据记录存在,只要存在至少一条记录就返回 TRUE ,否则就返回 FALSE 。
-- 查询选修了课程的学生学号和姓名
SELECT 学号, 姓名 FROM student
WHERE EXISTS (
SELECT * FROM sc
WHERE student.学号=sc.学号
);最后更新于
这有帮助吗?