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

admin2015-08-13  32

问题 设有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*FRolVl sc WHERE SC.学号= S.学号AND成绩<=85)
C、SELECT学号,姓名,性别FROM s WHERE EXISTS(SELECT* FROM sc WHERE SC.学号=S.学号AND成绩>85)
D、SELECT学号,姓名,性别FROM s WIlERE NOT EXISTS(SELECT * FROM sc WHERE SC.学号= S.学号AND成绩<85)

答案D

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

最新回复(0)