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

admin2017-09-25  18

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

选项 A、SELECT学号,姓名,性别FROM s WHERE EXISTS(SELECT*FROM Se 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/DJBp777K
0

最新回复(0)