1、上机操作题模拟试卷 13及答案与解析 一、基本操作题 1 (1)打开 “订货管理 ”数据库,并将表 order detail添加到该数据库中。 (2)为表 order detail的 “单价 ”字段定义默认值为 NULL。 (3)为表 order detail的 “单价 ”字段定义约束规则:单价 0,违背规则时的提示信息是: “单价必须大于零 ”。 (4)关闭 “订货管理 ”数据库,然后建立自由表 customer,表结构如下: 客户号 字符型 (6) 客户名 字符型 (16) 地址 字符型 (20) 电话 字符型 (14) 二、简单应用题 2 (1)列出总金额大于所有订购单总金额平均值的订购
2、单 (orderlist)清单 (按客户号升序排列 ),并将结果存储到 results表中 (表结构与 order list表结构相同 )。 (2)利用 Visual FoxPro的 “快速报表 ”功能建立一个满足如下要求的简单报表: 报表的内容是 order detail表的记录 (全部记录,横向 )。 增加 “标题带区 ”,然后在该带区中放置一个标签控件,该标签控件显示报表的标题 “器件清单 ”。 将页注脚区默认显示的当前日期改为显示当前的时间。 最后将建立的报表保存为 reportl frx。 三、综合应用题 3 首先将 order detail表全部内容复制到 od bak表,然后完成
3、如下操作: (1)将 od bak表中的订单号字段值只保留最后一个字母 (用 REPLACE命令或SQLUPDATE命令完成修改 )。 (2)用 SQL语句对 0d bak表编写完成如下功能的程序: 把 “订单号 ”相同并且 “器件号 ”相同的订单合并为一条记录, “单价 ”取最低价,“数量 ”取合 计。 结果先按新的 “订单号 ”升序排序,再按 “器件号 ”升序排序。 最终记录的处理结果保存在 0d new表中,表中的字段由 “订单号 ”、 “器件号 ”、 “器件名 ”、 “单价 ”和 “数量 ”构成。 (3)最后将程序保存为 progl prg,并执行该程序。 上机操作题模拟试卷 13答案
4、与解析 一、基本操作题 1 【正确答案】 本大题考查了数据库设计器的使用;字段有效性规则的建立;自由表的建立。 对表中字段建立有效性规则和设置默认值是在表设计器中操作的,在操作时要注意先选中需要建立有效性规则的字段 。注意:当将 “单价 ”字段默认值定义为空值时,应先将 NuLL值选项选中,允许字段为空值。 自由表是不属于任何数据库的表,在建立自由表之前应该关闭所有数据库,关闭数据库的命令是cLOSEDATABASE。 【操作步骤】 (1) 在命令窗口执行命令: MODIFY DATABASE订货管理,打开数据库设计器。 在数据库设计器中右击鼠标,选择【添加表】快捷菜单命令,在弹出的 “打开
5、”对话框中双击 order detail表,将表添加到数据库中。 (2)在数据库设计器中,右击 order detail表,选择【修改】快捷菜 单命令,打开 order detail表设计器,在 “字段 ”选项卡中选中 “单价 ”,勾选 NULL选项,在 “默认值 ”文本框中输入: NUL L如图 3 32所示。(3)接上题,在 “字段有效性 ”的 “规则 ”文本框中输入:单价 0,在 “信息 ”文本框中输入: “单价必须大于零 ”,单击 “确定 ”按钮保存表结构的修改。如图 3 32所示。 (4) 在命令窗口执行命令: CLOSE DATABA SE,关闭所有数据库。 执行【文件】【新建】菜
6、单命令,在弹出的 “新建 ”对话框中单击 “表 ”单选按钮,再单击 “新建文件 ”图标按钮,然后在弹出的 “创建 ”对话框的 “输入表名 ”框中输入 “customer”,单击 “保存 ”按钮打开表设计器。 根据题意,在表设计器中逐行输入每个字段的字段名,并设置字段类型和宽度,然后单击 “确定 ”按钮,此时系统会弹出一个对话框询问 “现在输入数据记录吗 ?”,由于本题没有要求输入数据,单击 “否 ”按钮。 【知识模块】 上机操作题 二、简单应用题 2 【正确答案】 本题主要考查了 SQL的嵌套查询。可以先在内查询中求出所有订单总金额的平均值,再在外查询中查找出总金额大于该平均值的订购单信息。本
7、题主要考查了快速报表的建立。 快速报表的建立需要在报表设计器中进行,在报表设计器中可以通过菜单命令启动建立快速报表的功能,建立快速报表应先指定报表的数据源。 【操作步骤】 步骤 l:在命令窗口执行命令: uSE ORDERDETAIL,打开 order detail表。 步骤 2:在命令窗口执行命令: CREATE REPORTREPORTl,打开报表设计器,然后执行【报表】【快速报表】菜单命令,在弹出的 “快速报表 ”对话框中单击 “确定 ”按钮,预览和保存报表设计。 步骤 3:执行【报表】一【标题总结】菜单命令,在弹出的 “标题总结 ”对话框中勾选 “标题带区 ”,单击 “确定 ”按钮,可
8、以看到报表设计器中添加了 “标题 ”带区。 步骤 4:通过 “报表控件 ”工具栏向报表的 “标题 ”带区添加一个标签控件,并输入标签标题:器件清单,并适当地调整标签的位置。 步骤 5:在 “页注脚 ”带区中,双击“DATEO”域控件,在弹出的 “报表表达式 ”对话框中的 “表达式 ”框中将 “DATE()“改为 “TIME()”(如图 3 33所示 ),单击 “确定 “按钮,预览和保存报表修改。【知识模块】 上机操作题 三、综合应用题 3 【正确答案】 本题主要考查的是程序的建立方法、 SQL分组与计算查询语句、记录的修改方法。本题的 SQi。分组与计算查询语句比较复杂,本题大概可以分为以下几
9、步: 首先利用 select语句将 orderdetail表的记录复制到新表中,该语句比较简单。 接着,利用 uPDATE语句更新表中的记录值,不熟悉 uPDATE语句的考生也可以通过 replacew ith 命令更新。 最后,通过 SQL分组与计算查询语句对记录进行合并,其中用到了 min()和sum()函数计算,分组语句则要求同时对两个字段进行分组,首先是按订单号字段分组,接着再按配件号分组,分组计算完毕之后,再通过 0rder by短语对查询结果进行排序,最后保存查询结果到新表中。 【操作步骤】 步骤 1:在命令窗口执行命令: SELECT*FROMorderdetai l INTO
10、TABLE odbak, order detail表的全部内容复制到 od bak表中。 步骤 2:在命令窗口执行命令: uPDATE odbak SET订单号=RIGHT(ALLTRIM(订单号 ), 1),将 od ball表中的 “订单号 ”字段值只保留最后一个字母。 步骤 3:在命令窗口执行命令: MOD工 FY COMMANDPROGl,新建程序并打开程序编辑器。 步骤 4:在程序编辑器中输入如下程序代码: SELECT订单号,器件号,器件名,; MIN(单价 )AS单价, sUM(数量 )AS数量; FROM ODBAK; GROUP BY订单号,器件号; ORDER BY订单号,器件号; INTO TABLE ODNEW 步骤 5:单击 “保存 ”按钮,并运行程序。 【知识模块】 上机操作题