天天看點

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

摘自資料庫系統概論

繼續閱讀