问题 单项选择题

设有s(学号,姓名,性别)和sc(学号,课程号,成绩)两个表,如下SQL语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别,正确的是 ______。

A.SELECT 学号,姓名,性别 FROM S WHERE EXISTS (SELECT * FROM SC WHERE S学号=学号 AND 成绩<=85)

B.SELECT 学号,姓名,性别 FROMS WHERE NOT EXISTS (SELECT * FROM SC WHERE S学号=学号 AND 成绩<=85)

C.SELECT 学号,姓名,性别 FROMS WHERE EXISTS (SELECT * FROM SC WHERE S学号=学号 AND 成绩>85)

D.SELECT 学号,姓名,性别 FROM S WHERE NOT EXISTS (SELECT * FROM SC WHERE S学号=学号AND成绩<85)

答案

参考答案:D

解析:[知识点] SQL的数据查询功能[评析] 查询操作使用SELECT命令,本题是连接查询和嵌套查询的结合使用,内层查询是将SC表和S表通过学号连接起来,查询的结果是选修的每门课程的成绩都小于85分的学生信息,外层查询表中不在内层查询结果中出现的学生的学号、姓名和性别,在WHERE条件短语中要用NOT EXISTS谓词。EXISTS是谓词,EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。

单项选择题
判断题