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

admin2015-08-20  61

问题 在考生文件夹下,打开学生数据库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和course表,添加到查询设计器中,添加的表会自动在查询设计器中建立联系。 步骤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 s db 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个表的添加顺序,要按照student表、sc表和course表的顺序进行添加,否则会导致两个表之间无法建立联系,或是导致查询出错。
    (2)本题主要考查SQL的联接查询和分组计算查询。联接查询要判断查询输出字段来自哪个表,再正确设置联接条件。在使用内联接时,联接条件应使用ON短语。当FROM之后的多个关系中含有相同的属性名时,须用关系前缀指明属性所属的关系,本查询中用到student和sc表中都含有“学号”字段,故应写为“stud.学号”。“平均成绩大于等于75”是分组条件,使用HAVING短语。
转载请注明原文地址:https://kaotiyun.com/show/yWEp777K
0

最新回复(0)