1、上机操作题-试卷 92 及答案解析(总分:8.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:4.00)在考生文件夹下,打开公司销售数据库 selldb,完成如下简单应用:(分数:4.00)(1).使用一对多表单向导生成一个名为 sd edit 的表单。要求从父表 dept 中选择所有字段,从子表 s t表中选择所有字段,使用“部门号”建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为“部门号”(升序);表单标题为“数据输入维护”。(分数:2.00)_(2).在考生文件夹下打开命令文件 twoprg,该命令文件用来查询各部门的分年度的“部门号”、“部门名”、“年度”
2、、“全年销售额”、“全年利润”和“利润率”(全年利润全年销售额),查询结果先按“年度”升序、再按“利润率”降序排序,并存储到 s sum 表中。 注意,程序在第 5 行、第 6 行、第8 行和第 9 行有错误,请直接在错误处修改。 修改时,不可改变 SQL 语句的结构和短语的顺序,不允许增加或合并行。(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)1.(1)编写程序 threeprg 完成下列操作:根据“外汇汇率”表中的数据产生 rate 表中的数据。 要求:将所有“外汇汇率”表中的数据插入 rate 表中并且顺序不变,由于“外汇汇率”中的“币种 1”和“币种 2”存放的是外币
3、名称,而 rate 表中的“币种 l 代码”和“币 2 代码”应该存放外币代码,所以插入时要做相应的改动,“外币名称”与“外币代码”的对应关系存储在“外汇代码”表中。 注意:程序必须执行一次,保证 rate 表中有正确的结果。(2)使用查询设计器建立一个查询文件 fourqpr。查询要求:从外汇账户中查询“日元”和“欧元”的记录。查询结果包括了外币名称、钞汇标志、金额,结果按“外币名称”升序排序,在“外币名称”相同的情况下按“金额”降序排序,并将查询结果存储于表fivedbf 中。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)2.(1)建立数据库 orders manage。
4、(2)将自由表 employee 和 orders 添加到新建的 ordersmanage 数据库中。(3)表 employee 与表 orders 具有一对多联系,为建立两表之问的联系建立必要的索引。(4)建立两表之间的联系并设置参照完整性规则如下:更新规则为“级联”,删除规则为“级联”,插入规则为“限制”。(分数:2.00)_上机操作题-试卷 92 答案解析(总分:8.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:4.00)在考生文件夹下,打开公司销售数据库 selldb,完成如下简单应用:(分数:4.00)(1).使用一对多表单向导生成一个名为 sd edit 的表单。要
5、求从父表 dept 中选择所有字段,从子表 s t表中选择所有字段,使用“部门号”建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为“部门号”(升序);表单标题为“数据输入维护”。(分数:2.00)_正确答案:(正确答案:本题考查的是一对多表单向导的使用。在启动向导前,可以先打开数据库环境,这样在启动向导添加数据表时,可在向导界面中直接选中所需的数据表,本题是根据两个表进行操作的,在启动向导时注意选择“一对多表单向导”,其他的操作只需根据向导提示在各界面中完成即可。 步骤1:在命令窗口执行命令:OPEN DATABASE selldb,打开数据库环境。 步骤 2:执行【文件】-【
6、新建】菜单命令,或单击“常用”工具栏的“新建”按钮,在弹出的“新建”对话框中选中“表单”选项,然后单击“向导”图标按钮,系统弹出“向导选取”对话框,选中“一对多表单向导”项,单击“确定”按钮,启动表单向导。 步骤 3:在表单向导的“步骤 1从父表中选定字段”界面的“数据库和表”下选中“dept”表,将“可用字段”中的字段全部添加到“选定字段”中,单击“下一步”按钮。 步骤 4:在表单向导的“步骤 2从子表中选定字段”界面的“数据库和表”下选中“s t”表,将“可用字段中的字段全部添加到“选定字段”中,单击“下一步”按钮。 步骤 5:在表单向导的“步骤 3建立表之间的关系”界面系统自动建立两个表
7、的联系,单击“下一步”按钮。 步骤 6:在表单向导的“步骤 4选择表单样式”界面中选中“样式”列表中的“阴影式”,再在“按钮类型”选项中选择“图片按钮”,单击“下一步”按钮。 步骤 7:在表单向导的“步骤 5排序次序”界面中双击“可用的字段或索引标识”中的“部门号”字段到“选定字段”列表中,单击“下一步”按钮。 步骤 8:在表单向导的“步骤 6完成”界面中的“请键入表单标题”下方文本框中输入“数据输入维护”,单击“完成”按钮。 步骤 9:在“另存为”对话框的“保存表单为:”框中输入表单文件名 sd edit,单击“保存“按钮。)解析:(2).在考生文件夹下打开命令文件 twoprg,该命令文件
8、用来查询各部门的分年度的“部门号”、“部门名”、“年度”、“全年销售额”、“全年利润”和“利润率”(全年利润全年销售额),查询结果先按“年度”升序、再按“利润率”降序排序,并存储到 s sum 表中。 注意,程序在第 5 行、第 6 行、第8 行和第 9 行有错误,请直接在错误处修改。 修改时,不可改变 SQL 语句的结构和短语的顺序,不允许增加或合并行。(分数:2.00)_正确答案:(正确答案:本题主要考查的 SQL 查询语句的改错。此类型的题一般都不难,主要是考核对SQL 查询语句格式的熟记情况。本题根据题目要求检查错误行,不难看出第 5 行属于 visual FoxPr0 中运算符运算次
9、序有错误;第 6 行在指定多个表时,表名间缺少逗号隔开,第 8、9 行都属于固定短语格式错误。 步骤 1:在命令窗口执行命令:MODIFY COMMANDwo:prg,打开 two 程序文件,文件中的命令代码如下: *下面的程序在第 5 行、第 6 行、第 8 行和第 9 行有错误,请直接在错误处修改。 *修改时,不可改变 SQL 语句的结构和短语的顺序,不允许增加或合并行。)解析:二、简单应用题(总题数:1,分数:2.00)1.(1)编写程序 threeprg 完成下列操作:根据“外汇汇率”表中的数据产生 rate 表中的数据。 要求:将所有“外汇汇率”表中的数据插入 rate 表中并且顺序
10、不变,由于“外汇汇率”中的“币种 1”和“币种 2”存放的是外币名称,而 rate 表中的“币种 l 代码”和“币 2 代码”应该存放外币代码,所以插入时要做相应的改动,“外币名称”与“外币代码”的对应关系存储在“外汇代码”表中。 注意:程序必须执行一次,保证 rate 表中有正确的结果。(2)使用查询设计器建立一个查询文件 fourqpr。查询要求:从外汇账户中查询“日元”和“欧元”的记录。查询结果包括了外币名称、钞汇标志、金额,结果按“外币名称”升序排序,在“外币名称”相同的情况下按“金额”降序排序,并将查询结果存储于表fivedbf 中。(分数:2.00)_正确答案:(正确答案:(1)本
11、题考查的是 SQL超链接查询。设计 SQL 代码的关键是怎样建立“外汇代码”表中“外币代码”与“外汇汇率”表中“币种 1”和“币种 2”的联系。 由于输出结果的“币种 1”和“币种 2”需要用相应的“外币代码”表示,“外汇代码”表中的“外币代码”只能利用一次,即替换“币种 1”或“币种 2”中的币种名称,这样没有被替换的币种仍然是中文币种名称,因此需要将“外汇代码”表利用两次,两个表中的“外币代码”分别替换“外汇汇率”表中“币种 1”和“币种 2”的中文币种名,被两次引用的表名要在原表名后再加“-a”进行区分。 三个表的联接条件分别是“外汇代码外币名称:外汇汇率币种 1”和“外汇汇率币种 2=
12、外汇代码-a外币名称”。查询输出的字段名可以通过 AS 短语重新指定名称。 另外,查询结果要求保存到数据库表,因此要将结果保存到数组中,然后再通过数组将记录插入到表中。 步骤 1:在命令窗口执行命令:MOD 工 FY COMMANDthree,打开程序文件编辑器。 步骤 2:在编辑器中输入如下程序代码(以下程序是通过查询设计器生成): 步骤 3:在命令窗口执行命令:DOthree:prg,执行程序文件。 本题容易产生错误的地方是将“外汇代码”表中的“外币代码”字段同时与“外汇汇率”表的“币种 1”和“币种 2”进行联接,而不通过将表引用两次的方法进行联接,因为一个表中的字段每次只能引用一次,因
13、此不能同时与另一个表中的两个字段同时建立联系。(2)【审题分析】本题考查的是在查询设计器中新建查询的操作。由于涉及两个表的操作,因此在操作过程中要注意确认查询输出的字段来源于哪个数据表;设置查询条件是 在“筛选”选项卡中进行;设置排序是在“排序依据”选项卡中进行,在设置排序方式时,需要每指定一个排序字段时,便要指定一次排序方式,升序为默认的排序方式;查询去向可通过执行【查询】【查询去向】菜单命令,在“查询去向”对话框中进行操作。 步骤 1:在命令窗口执行命令:OPEN DATABASE 外汇,打开数据库环境。 步骤 2:在命令窗口执行命令:CREATE QUERY four,打开查询设计器,在
14、“添加表或视图”对话框中,分别双击“外汇代码”表和“外汇账户”表,将表添加到查询设计器中。 步骤 3:添加两个表后,系统弹出“联接条件”对话框,自动查找两个表中相匹配的字段进行联接,单击“确定“按钮设置两个表的联系。 步骤4:依次双击“外汇代码”表中的“外币名称”和“外汇账户”表中的“钞汇标志”、“金额”字段,添加到“字段”选项卡的“选定字段”列表中。 步骤 5:在“筛选”选项卡的“字段名”下拉列表中选择“外汇代码外币名称”字段,在“条件”下拉框中选择“=”,在“实例”框中输入“曰元”,在“逻辑”下拉框中选择“OR”;接着在第二行接着输入查询条件,在“字段名”下拉列表中选择“外汇代码外币名称”
15、字段,在“条件”下拉框中选择“:”,在“实例”框中输入“欧元”。如图 326 所示: * 步骤 6:在“排序依据”选项卡内双击“选定字段”列表框中的“外汇代码外币名称”字段,将字段添加到“排序条件”列表框中,在“排序选项”中选择“升序”单选项;以同样的方法再设置“外汇账户金额”字段的降序。 步骤 7:执行【查询】【查询去向】菜单命令,在弹出的“查询去向”对话框中单击“表”图标按钮,接着在“表名”中输入文件名“five”,单击“确定”按钮。 步骤 8:最后单击“常用”工具栏中的“运行”按钮查看结果,将查询文件保存到考生文件夹下。)解析:三、综合应用题(总题数:1,分数:2.00)2.(1)建立数
16、据库 orders manage。(2)将自由表 employee 和 orders 添加到新建的 ordersmanage 数据库中。(3)表 employee 与表 orders 具有一对多联系,为建立两表之问的联系建立必要的索引。(4)建立两表之间的联系并设置参照完整性规则如下:更新规则为“级联”,删除规则为“级联”,插入规则为“限制”。(分数:2.00)_正确答案:(正确答案:为数据库添加表可以在数据库设计器中进行;参照完整性是针对同一数据库中的两个表进行设置的,因此建立参照完整性前要先建立两个表的关联,且有一个表中必须建立关联字段的主索引(或候选索引),另一个表要建立普通索引。本题的
17、重点是如何确立索引。由于 employee 表和 orders表的关联字段是“职工号”,而“职工号”在 employee 表中是没有重复值的,所以应该在 employee 表中的“职工号”字段上建立主索引,相应地,在 orders 表的“职工号”字段上建立普通索引。 (1)在命令窗口执行命令:MODIFY DATABAsE,新建数据库并打开数据库设计器。 (2)在数据库设计器中右击鼠标,选择【添加表】快捷菜单命令,在弹出的“打开”对话框中双击 employee 表,将表添加到数据库中,以同样的方法将 oers 表添加到数据库中。如图 327 和图 328 所示。 (3)右击数据库设计器中的em
18、ployee 表,选择【修改】快捷菜单命令,打开 employee 表设计器,在“字段”选项卡中选中“职工号”,在“索引”列中选择“升序”,然后在“索引”选项卡中修改“索引类型”为“主索引”,建立“职工号”字段的主索引,单击“确定”按钮保存表结构修改。 * 右击数据库设计器中的 oers 表,选择【修改】快捷菜单命令,打开 orde 表设计器,在“字段”选项卡中选中“职工号”,在“索引”列中选择“升序”,建立“职工号”字段的普通索引,单击“确定”按钮保存表结构修改。 拖动 employee 表“索引”下方的主索引“职工号”到 orders 表中“索引”下方的普通索引“职工号”上,为两个表建立联系。 (4)选中 employee 和 orde 两个表之间的连线(被选中的线会变粗),首先执行【数据库】-【清理数据库】菜单命令,清空数据库表中带有删除标记的记录,然后执行【数据库】-【编辑参照完整性】菜单命令。 在打开的“参照完整性”对话框的表格中,选择“更新”下的单元格内容为“级联”;“删除”下的单元格内容为“级联”;“插入”下的单元格内容为“限制”。单击“确定”按钮保存参照完整性的修改。)解析: