在考生文件夹下有student(学生)、course(课程)和score(选课成绩)3个表,用SQL语句完成如下操作: (1)查询每门课程的最高分,要求得到的信息包括课程名称和分数,将结果存储到max.dbf表文件(字段名是课程名称和分数),并将相应的SQ

admin2015-08-20  24

问题 在考生文件夹下有student(学生)、course(课程)和score(选课成绩)3个表,用SQL语句完成如下操作:
(1)查询每门课程的最高分,要求得到的信息包括课程名称和分数,将结果存储到max.dbf表文件(字段名是课程名称和分数),并将相应的SQL语句存储到命令文件one.prg。   
    (2)查询哪些课程有不及格的成绩,将查询到的课程名称存入文本文件new.txt,并将相应的SQL语句存储到命令文件two.prg。

选项

答案(1) 步骤1:在命令窗口执行命令:MODIFY COMMAND ONE,打开程序文件编辑器。 步骤2:在编辑器中输入如下程序代码(以下程序是通过查询设计器生成): 1 SELECT COURSE.课程名称,MAX(SCORE.成绩)AS分数; 2 FROM COURSE INNER JOIN SCORE; 3 ON COURSE.课程编号=SCORE.课程编号; 4 GROUP BY COURSE.课程名称; 5 INTO TABLE MAX.dbf 步骤3:在命令窗口执行命令:DO ONE.PRG,执行程序文件。 (2) 步骤1:在命令窗口执行命令:MODIFY COMMAND TWO,打开程序文件编辑器。 步骤2:在编辑器中输入如下程序代码(以下程序是通过查询设计器生成): 1 SELECT COURSE.课程名称; 2 FROM COURSE INNER JOIN SCORE; 3 ON COURSE.课程编号=SCORE.课程编号; 4 WHEREWHERE SCORE.成绩<60; 5 GROUP BY COURSE.课程名称; 6 TO FILE NEW.TXT 步骤3:在命令窗口执行命令:DO YWO.PRG,执行程序文件。

解析 (1)本题考查了SQL分组与计算查询。根据题意,需要对COurse和score表进行连接,连接字段为“课程编号”,利用MAX()函数对“成绩”字段计算可以得到最高分,新字段名通过AS短语指定;由于是求每门课程的最高分,因此,分组字段为“课程名称”或“课程编号”,最后将查询结果输出到指定的数据表中。对于SQL语句不太熟悉的考生,可借助查询设计器生成SQL语句。
    (2)本题考查了SQL分组查询。与上小题不同的地方是本题中查询条件是通过WHERE短语指出,查询条件是“SCORE.成绩<60”,不涉及计算查询,语句比较简单。本题SQL语句同样可以借助查询设计器生成。
转载请注明原文地址:https://jikaoti.com/ti/yIv0FFFM
0

最新回复(0)