学生表:S(学号,姓名,性别,出生日期,院系) 课程表:C(课程号,课程名,学时) 选课成绩表:SC(学号,课程号,成绩)在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。用 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
解析:Visual FoxPro的SELECT-SQL命令的一般语法格式如下:SELECT [ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…FROM<基本表(或视图)> [,<基本表(或视图)>]…[WHERE<条件表达式>][GROUP BY<列名1>[HAVING<内部函数表达式>]][ORDER BY<列名2>[ASC|DESC]];说明:① SELECT子句:ALL表示选出的记录中包括重复记录,这是缺省值;DISTINCT则表示选出的记录中不 包括重复记录。② FROM子句及其选项:用于指定查询的表,可以对单个表或多个表进行查询。③ WHERE子句:说明查询条件,即筛选元组的条件。④ GROUP BY子句:对记录按<列名1>值分组,常用于分组统计。⑤ HAVING子句:当含有GROUP BY子句时,HAVING子句可用作记录查询的限制条件;无GROUP BY子 句时HAVING子句的作用如同WHERE子句。⑥ ORDER BY子句:指定查询结果中记录按<列名2>排序,默认升序。选项ASC表示升序,DESC表示降 序。