天天看点

带有EXISTS谓词的子查询

带有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)

摘自数据库系统概论

继续阅读