列表

详情


对于下图所示的Students和SC关系,属性Sno 表示学号,Sname 表示姓名,Sex表示性别,SD 表示专业,Age表示年龄,Cno表示课程号,Grade表示成绩。

a.当用户查询“选了课程 2 的学生数”时,其结果应为 () ;当 Students 和 SC关系进行自然连接时,其结果集的属性列数应为 () 。
b.查询“至少选修了两门课程的每个学生的平均成绩”的SQL语句如下:
SELECT    Sno, ()
FROM    SC
GROUP BY Sno  
()  >1;

第 1 问

A. 3

B. 4

C. 6

D. 7

第 2 问

A. 6

B. 7

C. 8

D. 9

第 3 问

A. Grade

B. SUM(Grade)/ 7

C. AVG(Grade)

D. SUM(Grade)/ COUNT(Cno)

第 4 问

A. WHERE COUNT(Sno)

B. WHERE COUNT(DISTINCT(Sno))

C. HAVING COUNT(Sno)

D. HAVING COUNT(DISTINCT(Sno))

参考答案: A B C 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:

上一题