带有EXISTS谓词的子查询
EXISTS 代表存在量词 。带有EXISTS 谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”
【例】查询所有选修了1号课程的学生姓名
select Sname from Student where EXISTS (select * from SC where Sno=Student.Sno AND Cno=1)
若内层查询结果非空,则外层的where子句返回真值,否则返回假值
NOT EXISTS 代表不存在量词,,使用NOT EXISTS后,若内层查询结果为空,则外层的where子句返回真值,否则返回假值
【例】查询没有选修1号课程的学生姓名
select Sname from Student where NOT EXISTS (select * from SC where Sno=Student.Sno AND Cno=1)
摘自数据库系统概论