刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

单选题

关于学生和课程的关系查询,请回答以下问题: a.当用户查询“选了课程2的学生数”时,结果应为多少?当Students和SC关系进行自然连接时,其结果集的属性列数应为多少? b.请写出查询“至少选修了两门课程的每个学生的平均成绩”的SQL语句。

A
WHERE COUNT(Sno)
B
WHERE COUNT (DISTINCT(Sno))
C
HAVING COUNT (Sno)
D
HAVING COUNT (DISTINCT(Sno))
使用微信搜索喵呜刷题,轻松应对考试!

答案:

D

解析:

对于题目给出的内容分析如下:
a部分:
首先,根据关系数据库的基本操作,当用户查询"选了课程2的学生数"时,即查询SC表中课程号Cno为课程2的条目的数量,所以答案为A。其次,当Students和SC关系进行自然连接时,结果集的属性列数取决于两个关系中的属性列数,并且去除重复的属性列。由于Students表有学号Sno、姓名Sname等属性,SC表有学号Sno、课程号Cno和成绩Grade等属性,因此自然连接后的属性列数为学号Sno、姓名Sname、性别Sex、专业SD、年龄Age、课程号Cno和成绩Grade共七列。所以答案为自然连接后的属性列数为7列。
b部分:
查询"至少选修了两门课程的每个学生的平均成绩",需要使用SQL的GROUP BY子句对学号Sno进行分组,并使用COUNT函数计算每个学生选修的课程数量。为了满足题目要求至少选修了两门课程的学生,应该在GROUP BY子句后面加上HAVING子句进行筛选。因为我们要确保同一个学号不重复计数,所以使用COUNT(DISTINCT Sno)。因此正确的SQL语句为:SELECT Sno, AVG(Grade) FROM SC GROUP BY Sno HAVING COUNT (DISTINCT Sno)>1。所以答案为AVG(Grade)(计算每个学生的平均成绩)和HAVING COUNT (DISTINCT (SNO))>1(对分组后的结果进行筛选,选出至少选修了两门课程的学生)。

创作类型:
原创

本文链接:关于学生和课程的关系查询,请回答以下问题: a.当用户查询“选了课程2的学生数”时,结果应为多少?

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share