以下2题使用如下三个数据库表学生表:S(学号,姓名,性别,出生日期,院系) 课程表:C(课程号,课程名,学时) 选课成绩表:SC(学号,课程号,成绩) 在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。
单选题
用SQL命令查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是
【正确答案】
A
【答案解析】解析:EXISTS是谓词,EXISTS或NOTEXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。其本身并没有进行任何运算或比较,只用来返回子查询结果。选项B)和c)返回的结果都是只要有任意一门选修课程成绩大于等于85的学生学号和姓名,而本题要求返回的是所有选修课程大于等于85的学生学号和姓名,选项D)中的ALL短语无实际意义。
单选题
用SQL语言检索选修课程在5门以上(含5门)的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是
【正确答案】
D
【答案解析】解析:本题中通过分组计算查询语句,查找满足条件的记录,利用HAV- ING子句做进一步的分组限制条件设置。在该SQL语句中首先通过s表和sc表中的学号字段进行联接,利用AVG()函数可求指定字段的平均值,然后通过GROUP BY子句,按S表的学号进行分组,利用HAVING子句限定分组条件为选修课程大于等于5的学生记录,即COUNT(*)>=5,最后利用ORDER BY子句将结果按指定顺序排列。