在考生文件夹下,打开学生数据库SDB,完成如下简单应用: (1)使用查询设计器设计一个名称为two的查询,查询每个同学的学号(来自student表)、姓名、课程名和成绩。查询结果先按课程名升序、再按成绩降序排序,查询去向是表,表名是two。设计完成

admin2013-06-10  18

问题 在考生文件夹下,打开学生数据库SDB,完成如下简单应用:
    (1)使用查询设计器设计一个名称为two的查询,查询每个同学的学号(来自student表)、姓名、课程名和成绩。查询结果先按课程名升序、再按成绩降序排序,查询去向是表,表名是two。设计完成后,运行该查询。
    (2)修改一个名称为three.prg的命令文件。该命令文件用来查询平均成绩太子等于75分以上的每个“女”同学的学号、姓名、平均成绩和选课门数,结果按选课门数降序排序输出到表three中。该命令文件在第2行、第3行、第4行、第5行有错误(每行只有一处必须修改的错误,不出错的地方不要做任何修改),打开该命令文件,直接在错误处修改并保存。
    注意:修改时,不可改变sq1语句的结构和短语的顺序,不允许增加或合并行。

选项

答案(1)步骤1:在命令窗口执行命令:OPEN DATABASE sdb,打开数据库环境。 步骤2:在命令窗口执行命令:CREATE QUERY two,打开查询设计器,在“添加表或视图”对话框中,分别双击student表、sc表和coursc表,将表添加到查询设计器中,此时,添加的表会按照数据库中已存在的表间联系自动为3个表在查询设计器中建立联系。 步骤3:根据题目要求,在“字段”选项卡的“可用字段”中,依次双击“student.学号”、“student.姓名”、“course.课程名”、“sc.成绩”,将它们添加到“选定字段”列表中。 步骤4:在“排序依据”选项卡内双击“选定字段”列表框中的“course.课程名”,将其添加到“排序条件”列表框中,在“排序选项”中选择“升序”;再双击“选定字段”列表框中的“sc成绩”,将其添加到“排序条件”中,在“排序选项”中选择“降序”。 步骤5:执行【查询】→【查询去向】菜单命令,在弹出的“查询去向”对话框中单击“表”图标按钮,接着在“表名”中输入文件名two,单击“确定”按钮。 步骤6:最后单击“常用”工具栏中的“运行”按钮查看结果,将查询文件保存到考生文件夹下。 (2)步骤1:在命令窗口执行命令:MODIFY COMMAND three,打开three.prg程序,命令代码如下: OPEN DATABASE sdb SELECT学号,姓名,AVG(成绩) AS 平均成绩,COUNT (成绩) AS选课门数; FROM student.JOIN sc OF student.学号=sc.学号; WHERE 性别="女"AND AVG(成绩)>=75; GROUP BY学号; ORDER BY 4 desc; INTO TABLE three 修改程序中的错误行,修改后的程序如下: OPEN DATABASE sdb SELECT student.学号,姓名,AVG(成绩)平均成绩,COUNT(成绩) 选课门数;&&在“学号”字段前加前缀“student”,指明“学号”来自student表 FROM student JOIN sc ON student.学号=sc.学号; &&内联接查询中联接条件使用ON短语 WHERE 性别="女"; GROUP BY student.学号HAVING AVG(成绩) >=75; &&having短语用来指定分组的条件 ORDER BY 4 desc; INTO TABLE three 步骤2:单击“常用”工具栏中的“保存”按钮,将程序文件保存到考生文件夹下。

解析 (1)本题主要考查的是查询设计器的使用,首先要判断查询数据源包括哪些数据表,将数据表添加到查询设计器后,再根据题目要求从每个表中选取字段,设置查询条件等完成查询。本题操作时要注意3个表的添加顺序,要按照stud表、scor表和cour表的顺序进行添加,否则会导致两个表之间无法建立联系,或是导致查询出错。
    (2)本题主要考查的是SQL的联接查询和分组计算查询。进行联接查询时主要是判断查询输出字段来自哪个表,再正确设置联接条件。在使用内联接时,联接条件应使用ON短语。当FROM之后的多个关系中含有相同的属性名时,必须用关系前缀指明属性所属的关系,如本查询中用到student表和sc表中都含有“学号”字段,故当用到“学号”字段时,应写为“stud.学号”。“平均成绩大于等于75”是分组条件,应使用HAVING短语。
转载请注明原文地址:https://kaotiyun.com/show/RTop777K
0

最新回复(0)