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

admin2016-08-23  25

问题 设有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/f1Ip777K
0

最新回复(0)