对于下图所示的Students和SC关系,属性Sno表示学号,Sname表示姓名,Sex表示性别,SD表示专业,Age表示年龄,Cno表示课程号,Grade表示成绩。 a.当用户查询“选了课程2的学生数”时,其结果应为(59)

admin2009-05-15  26

问题 对于下图所示的Students和SC关系,属性Sno表示学号,Sname表示姓名,Sex表示性别,SD表示专业,Age表示年龄,Cno表示课程号,Grade表示成绩。
           
   a.当用户查询“选了课程2的学生数”时,其结果应为(59);当Students和SC关系进行自然连接时,其结果集的属性列数应为(60)。
   b.查询“至少选修了两门课程的每个学生的平均成绩”的SQL语句如下:
   SELECT Sno,(61)
   FROM  SC
   GROUP BY Sno
   (62)>1;

选项 A、WHERE COUNT(Sno)
B、WHERE COUNT(DISTINCT(Sno))
C、HAVING COUNT(Sno)
D、HAVING COUNT(DISTINCT(Sno))

答案D

解析 本题考查的是应试者对关系运算、SQL语言的掌握程度。
   试题(59)、(60)考查的是关系运算的基础知识。表SC为学生选课表,由于表中有三个不同的学生学号Sno,因此试题(59)的正确答案为A。当Students和SC关系进行自然连接时,其结果集的属性列数为7个。因为自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果集中将重复属性列去掉,因此结果集的属性列数为7个。
   试题(61)正确的答案是C,因为试题要求每个学生的平均成绩,所以使用平均值集函数avg。SQL提供了5个预定义集函数:avg(平均值)、min(最小值)、max(最大值)、sum(求和)及count(计数)。
   试题(62)正确的答案是D,因为元组在分组前按照某种方式加上限制,使得不需要的分组为空,应该在GROUP BY子句后面跟一个HAVING子句。即查询至少选修了两门课程的每个学生的平均成绩的SQL语句如下:
   SELECT  Sno,AVG(Grade)
   FROM  SC
   GROUP BY Sno
   HAVING COUNT (DISTINCT (SNO))>1;
转载请注明原文地址:https://jikaoti.com/ti/llW7FFFM
0

相关试题推荐
最新回复(0)