设数据库有如下表: 学生(学号,姓名,出生日期,专业) 成绩(学号,课程号,考试分数) 学生表中的主键是学号,成绩表中的主键是学号和课程号。已知学生表中共有100名学生,有60人参加了课程号为“C001”的考试,考试分数保存在成绩表

admin2017-09-25  40

问题 设数据库有如下表:
    学生(学号,姓名,出生日期,专业)
    成绩(学号,课程号,考试分数)
    学生表中的主键是学号,成绩表中的主键是学号和课程号。已知学生表中共有100名学生,有60人参加了课程号为“C001”的考试,考试分数保存在成绩表中,其中有10人不及格。执行下列SQL语句后, 返回的结果是:(    )。
    SELECT COUNT(*)FROM学生;
    WHERE EXISTS(SELECT*FROM成绩WHERE课程号=’C001’AND考试分数<60)

选项 A、100
B、60
C、10
D、0

答案A

解析 EXISTS用来检查在子查询中是否有结果返回,只要内层查询有记录,则主查询语句就成立。它代表“存在”,用来引领嵌套查询的内层查询,它不返回任何数据,只产生逻辑真值true与逻辑假值Falsec.本题中内层查询语句“SELECT*FROM成绩WHERE课程号=’C001’AND考试分数<60”表示在成绩表中查找出参加了课程号为“C001”的考试且考试成绩不及格的学生信息,由题意可知符合这样条件的学生有10条记录,所以EXISTS后面的语句返回结果为真,故外层查询的条件成立,外层查询语句等价为SELECTCOUNT(*)FROM学生WHERE true,其功能为统计学生表中所有学生的人数,所以A选项正确。
转载请注明原文地址:https://kaotiyun.com/show/7CBp777K
0

最新回复(0)