02120数据库及其应用

有成绩表S(学号,课程号,分数),如果要在报表中输出每个学生的平均分,则应在报表设计中使用函数()A、=Avg([成绩])B、=Count([成绩])`C、=Sum([成绩])D、=Total([成绩])

题目

有成绩表S(学号,课程号,分数),如果要在报表中输出每个学生的平均分,则应在报表设计中使用函数()

  • A、=Avg([成绩])
  • B、=Count([成绩])`
  • C、=Sum([成绩])
  • D、=Total([成绩])
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

使用如下3个数据库表: 学生表:S(学号,姓名,性别,出生日期,院系) 课程表:C(课程号,课程名,学时) 选课成绩表:SC(学号,课程号,成绩) 在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。用SQL语言检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是______。

A.SELECTS.学号,姓名,平均成绩FROM S,SC; WHERE S.学号=SC.学号; GROUP BY S.学号HAVING COUNT(*)>=5 ORDER BY平均成绩DESC

B.SELECT学号,姓名,AVG(成绩)FROMS,SC; WHERE S.学号=SC.学号AND COUNT(*)>=5; GROUP BY学号ORDER BY 3 DESC

C.SELECTS.学号,姓名,AVG(成绩)平均成绩FROM S,SC; WHERE S.学号;SC.学号AND COUNT(*)>=5; GROUP BY S.学号ORDER BY平均成绩DESC

D.SELECTS.学号,姓名,AVG(成绩)平均成绩FROMS,SC, WHERE S.学号:SC.学号; GROUP BYS.学号HAVING COUNT(*)7=5 ORDER BY 3 DESC


正确答案:D
解析:Visual FoxPro的SELECT—SQL命令的一般语法格式如下:
   SELECT[ALL|DISTINCT]目标列表达式>[,目标列表达式>]…
   FROM基本表(或视图)>[,基本表(或视图)>]…
   [WHERE条件表达式>]
   [GROUPBY列名1>[HAVING内部函数表达式>))
   [ORDERBY列名2>[ASC|DESC]];
说明:
①SELECT子句:ALL表示选出的记录中包括重复记录,这是缺省值;DISTINCT则表示选出的记录中不包括重复记录。
②FROM子句及其选项:用于指定查询的表,可以对单个表或多个表进行查询。
③WHERE子句:说明查询条件,即筛选元组的条件。
④GROUP BY子句:对记录按列名1>值分组,常用于分组统计。
⑤HAVING子句:当含有GROUP BY子句时,HAVING子句可用作记录查询的限制条件;无GROUP BY子句时HAVING子句的作用如同WHERE子句。
⑥ORDER BY子句:指定查询结果中记录按列名2>排序,默认升序。选项ASC表示升序,DESC表示降序。

第2题:

设有学生表XS(学号,课程号,成绩),用SQL语句检索每个学生的成绩总和的语句是:

SELECT 学号,SUM(成绩) FROM XS ______


正确答案:GROUP BY 学号
GROUP BY 学号 解析:在实际的应用中,除了简单的计算查询外,我们还可以加上GROUP BY子句进行分蛆计算查询。
通常来说,一个计算函数的范围是满足WHERE子句指定条件的所有记录。当加上GROUP BY于句后,系统会将查询结果按指定列分成集合组。当一个计算函数和一个GROUP BY子句一起使用时,计算函数的范围变为每组所有的记录。也就是说,一个结果是由组成一组的每个记录集合产生的。
检索每个学生的成绩总和时,需按学号进行分组计算。

第3题:

用SQL语言检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是A)SELECT S.学号,姓名,平均成绩FROM S,SC; WHERE S.学号=SC.学号; GROUP BY S.学号HAVING GOUNT(*)>=5 ORDER BY平均成绩DESCB)SELECT学号,姓名,AVG(成绩)FROM S,SC; WHERE S.学号SC.学号AND COUNT(*)>=5; GROUP BY学号ORDER BY 3 DESCC)SELECT S.学号,姓名,AVG(成绩)平均成绩FROM S,SC; WHERE S.学号=SC.学号AND COUNT(*)>=5; GROUP BY S.学号ORDER BY平均成绩DESCD)SELECT S.学号,姓名,AVG(成绩)平均成绩FROM S,SC; WHERE S.学号=SC.学号; GROUP BY S.学号HAVING COUNT(*)=5 ORDER BY 3 DESC


正确答案:D
本题考查使用COUNT()函数来构造复杂查询,显示”平均成绩”不是表中字段,不能直接显示,用函数来实现表示方法为:AVG(成绩)平均成绩。因选项A,选项B表示错误可排除;在查询中是先用WHERE子句限定元组,然后进行分组,最后再用HAVING子句限定分组,也就是说先写WHERE子句,然后是GROUP,最后用HAVING子句对GROUP分组限定条件。选项C这两个选项中错误在于COUNT(*)>=5分组限定条件写在WHERE之后。故选项D为正确答案。

第4题:

查询选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是( )。

A.SELECT S.学号,姓名,平均成绩FROM student s,score sc WHERE S.学号=sc.学号 GROUP BY s.学号HAVING COUNT(*)>=5 ORDER BY平均成绩DESC

B.SELECT s.学号,姓名,AVG(成绩)FROM student s,score sc WHERE s.学号=SC.学号AND COUNT(*)>=5 GRoUP BY学号0RDER BY 3 DESC

C.SELECT S.学号,姓名,AVG(成绩)平均成绩FROM student s,score sc WHERE s.学号=SC.学号AND COUNT(*)>=5 GROUP BY s.学号ORDER BY平均成绩DESC

D.SELECT s.学号,姓名,AVG(成绩)平均成绩FROM student s,score sc WHERE s.学号=sc.学号 GROUP BY s.学号HAVING COUNT(*)>=5 0RDER BY 3 DESC


正确答案:D
D。【解析】由条件可知所要查询的是所选课程数大于等于5的学生的学号、姓名和平均成绩,其ee成绩是在sc表中,所以s.学号=sc.学号,而必须是成绩大于等于5所以COUNT(*)>=5。所以,正确的SQL语句为SELECTs.学号,姓名,AVG(成绩)平均成绩FROMstudents,scorescWHEREs.学号=sc.学号GROUPBYs.学号HAVINGCOUNT(*)>=50RDERBY3DESC,答案为D。

第5题:

学生(学号(C,8),姓名(C,6),性别(C,2),出生日期(D))选课(学号(C,8),课程号(C,3),成绩(N,5,1)) 假定学号的第3、4位为专业代码。要计算各专业学生选修课程号为“007"课程的平均成绩,正确的SQL语句是( )。

A. SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课WHERE课程号=”007” GROUP BY专业

B. SELECT SUBS(学号,3,2)AS专业,AVG(成绩)As平均分FROM选课WHERE课程号=”007” GROUP BY 1

C. SELECT SUBS(学号,3,2)AS专业,AVG(成绩)As平均分FROM选课WHERE课程号=”007”OR—DER BY专业

D. SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课WHERE课程号=”007”OR—DER RY 1


正确答案:B
根据题目要求,要把不同专业的学生进行分组并求平均成绩,所以要用到短语GROUP BY,在SE.LECT语句中,目标字段放在As之后,“1”表示第一个字段。

第6题:

在成绩表中,检索选修3门以上课程的学生的及格学科的总成绩。成绩表中包含学号、姓名、课程名和成绩4个字段。

请将下面的SQL语句补充完整。

SELECT学号,SUM(成绩)FROM【 】;

WHERE成绩>=60;

GROUP BY学号;

【 】COUNT(*)>=3


正确答案:【 】成绩表【 】HAVING
【 】成绩表【 】HAVING 解析:本题中,根据学号将学生记录分组,然后利用SQL的统计函数COUNT(),统计选修3门课程以上的学生记录,并利用SUM()函数将及格科目的分数求和。

第7题:

假定学号的第3、4位为专业代码,要计算各专业学生选修课程号为“1O1”课程的平均成绩,正确的SQL语句是( )。

A.SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课 WHERE课程号=”101”GROUP BY专业

B.SELECT SUBS(学号,3,2)AS专业,AVG(成绩)AS 平均分FROM选课 WHERE课程号=”101”GROUP BY 1

C.SELECT SUBS(学号,3,2)AS专业,AVG(成绩)AS 平均分FROM选课 WHERE课程号=”101”ORDER BY专业

D.SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课 WHERE课程号=”101”ORDER BY 1


正确答案:B
先用SQLSELECT中的GROUPBY把不同专业的学生进行分组,然后再利用AVG函数计算平均分。

第8题:

在成绩表中,检索选修3门以上课程的学生及格学科的总成绩。成绩表中包含学号、姓名、课程名和成绩4个字段。请将下列SQL语句补充完整。SELECT 学号,SUM(成绩) FROM 成绩表; WHERE 成绩>=60; GROUP BY 学号; ______COUNT(*)>=3


正确答案:HAVING
HAVING 解析:在实际的应用中,除了简单的计算查询外,我们还可以加上GROUP BY子句进行分组计算查询。
通常来说,一个计算函数的范围是满足WHERE子句指定条件的所有记录。当加上GROUP BY子句后,系统会将查询结果按指定列分成集合组。当一个计算函数和一个GROUP BY子句一起使用时,计算函数的范围变为每组所有的记录。也就是说,一个结果是由组成一组的每个记录集合产生的。
另外,使用HAVING子句可以对这些组进一步加以控制。用这个子句定义这些组所必须满足的条件,以便将其包含在结果中。
本题中,根据学号将学生记录分组,然后利用SQL的统计函数COUNT(),统计选修3门课程以上的学生记录,并利用SUM()函数将及格科目的分数求和。

第9题:

查询选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是

A.SELECT s.学号,姓名,平均成绩FROM student s,score sc WHERE s.学号=sc.学号 GROUP BY s.学号HAVING COUNT(*)>=5 ORDER BY平均成绩DESC

B.SELECT学号,姓名,AVG(成绩)FROM student s,score sc WHERE s.学号=sc.学号AND COUNT(*)>=5 GR0UP BY学号ORDER BY 3 DESC

C.SELECT s.学号,姓名,AVG(成绩)平均成绩FROM student s,score sc wHERE s.学号=sc.学号AND COUNT(*)>=5 GROUP BY s.学号ORDER BY平均成绩DESC

D.SELECT s.学号,姓名,AVG(成绩)平均成绩FROM student s,score sc WHERE s.学号=sc.学号 GROUP BY s.学号HAVING COUNT(*)>=5ORDER BY 3 DESC


正确答案:D
解析:HAVING短语必须跟随GROUP BY使用,它用来限定分组必须满足 的条件,所以本题正确答案为D。

第10题:

用SQL语言检索选修课程在5门以上(含5门)的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是

A.SELECT S.学号,姓名,平均成绩FROM S,SC; WHERE S.学号=SC.学号; GROUP BY S.学号 HAVING COUNT(*)>=5 ORDER BY 平均成绩 DESC

B. SELECT 学号,姓名,AVG(成绩)FROM S,SC; WHERE S.学号=SC.学号AND COUNT(*)>=5; GROUP BY 学号 ORDER BY 3 DESC

C.SELECT S.学号,姓名,AVG(成绩)平均成绩 FROM S,SC; WHERE S.学号=SC.学号AND COUNT(*)>=5; GROUP BY S.学号 ORDER BY平均成绩 DESC

D.SELECT S.学号,姓名,AVG(成绩)平均成绩 FROM S,SC; WHERE S.学号;SC,学号; GROUP BY S.学号 HAVING COUNT(*)>=5 ORDER BY 3 DESC


正确答案:D
解析:本题中通过分组计算查询语句,查找满足条件的记录,利用HAV- ING子句做进一步的分组限制条件设置。在该SQL语句中首先通过s表和sc表中的学号字段进行联接,利用AVG()函数可求指定字段的平均值,然后通过GROUP BY子句,按S表的学号进行分组,利用HAVING子句限定分组条件为选修课程大于等于5的学生记录,即COUNT(*)>=5,最后利用ORDER BY子句将结果按指定顺序排列。

更多相关问题