设有 s(学号,姓名,性别)和 sc(学号,课程号,成绩)两个表,如下 SQL 语句检索选修的每 门课程的成绩都高于或等于 85 分的学生的学号、姓名和性别,正确的是______。
A. SELECT 学号,姓名,性别 FROM S WHERE EXISTS(SELECT * FROM SC WHERE SC.学号=s.学号 AND 成绩<=85)
B.SELECT 学号,姓名,性别 FROM S WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.学号=s.学号 AND 成绩<=85)
C.SELECT 学号,姓名,性别 FROM S WHERE EXISTS(SELECT * FROM SC WHERE SC.学号=S.学号 AND 成绩>85)
D.SELECT 学号,姓名,性别 FROM S WHERE NOT EXISTS(SELECT * FROM SC WHERE SC.学号=S.学号 AND 成绩<85)
参考答案:D
解析:查询操作使用SELECT命令,本题是连接查询和嵌套查询的结合使用,内层查询是将SC表和S表通过 学号连接起来,查询的结果是选修的每门课程的成绩都小于85分的学生信息,外层查询表中不在内层查询结果中出现的学生的学号、姓名和性别,在WHERE条件短语中要用NOT EXISTS谓词。EXISTS是谓词, EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。