设有学生表student(学号,姓名,性别,出生日期,院系)、课程表course(课程号,课程名,学时)和选课表score(学号,课程号,成绩),查询所修课程成绩都大于等于85分的学生的学号和姓名,正确的命令是

admin2015-11-21  21

问题 设有学生表student(学号,姓名,性别,出生日期,院系)、课程表course(课程号,课程名,学时)和选课表score(学号,课程号,成绩),查询所修课程成绩都大于等于85分的学生的学号和姓名,正确的命令是

选项 A、SELECT学号,姓名FROM student s WHERE NOT EXISTS
    (SELECT*FROM score sc;WHERE sc.学号=s.学号AND成绩<85)
B、SELECT学号,姓名FRoM student s WHERE NOT EXISTS
    (SELECT*FROM score sc;WHERE sc.学号-s.学号AND成绩>=85)
C、SELECT学号,姓名FROM student s,score sc
    WHERE s.学号=sc.学号AND成绩>=85
D、SELECT学号,姓名FROM student s,score sc  
    WHERE s.学号=sc.学号AND ALL成绩>=85

答案A

解析 本题考查SELECT语句中关键字EXISTS的应用。EXISTS是用来判断子查询中是否有或没有结果返回,当EXISTS(查询)有返回时,则返回真,否则返回假。NOT EXISTS则相反。EXISTS做为WHERE条件时,是先对WHERE前的主查询进行查询,然后用主查询的结果一个一个的代入EXISTS的查询进行判断,如果为真则输出当前这一条主查询的结果,否则不输出。选项A的子查询是查询出选课表中的学号等于学生学号并且学生成绩小于85分的所有学生记录。而在主查询中找出所有学生的学生和姓名不在子查询集的记录就是题目的要求。  
转载请注明原文地址:https://kaotiyun.com/show/30bp777K
0

最新回复(0)