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

admin2015-08-25  18

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

选项 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

解析 本题考查内外层嵌套查询以及使用量词和谓词的查询。EXISTS是谓词,EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。其本身并没有进行任何运算或比较,只用来返回子查询结果。本题要检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别,SELECT * FROM  sc WHERE SC.学号 = S.学号 AND成绩 < 85已经筛选出成绩小于85分的所有记录,NOT EXISTS命令即返回高于或等于85分的记录,因此D选项正确。
转载请注明原文地址:https://kaotiyun.com/show/UBbp777K
0

最新回复(0)