1、国家二级 VF 机试(操作题)-试卷 280 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生目录下完成如下操作:(1)打开“订货管理“数据库,并将表 order_list 添加到该数据库中。(2)在“订货管理“数据库中建立表 order_detail,表结构描述如下:订单号 字符型(6)器件号 字符型(6)器件名 字符型(16)单价 浮动型(10.2)数量 整型(3)为新建立的 order_detail 表建立一个普通索引,索引名和索引表达式均是“订单号“。(4)建立表 order_list 和表 order_detail 间的永久联系
2、(通过“订单号“字段)。(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.在考生目录下完成如下简单应用:(1)将 order_detail1 表中的全部记录追加到 order_detail 表中,然后用 SQL SELECT 语句完成查询:列出所有订购单的订单号、订购日期、器件号、器件名和总金额(按订单号升序,订单号相同再按总金额降序),并将结果存储到 results 表中(其中订单号、订购日期、总金额取自 order_list 表,器件号、器件名取自 order_detail 表)。(2)打开 modi1.prg 命令文件,该命令文件包含 3 条 SQL 语句,每条 SQL
3、 语句中都有一个错误,请改正之(注意:在出现错误的地方直接改正,不可以改变 SQL 语句的结构和 SQL 短语的顺序)。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.在做本题前首先确认在基础操作中已经正确地建立了 order_detail 表,在简单应用中已经成功地将记录追加到 order_detail 表。当 order_detail 表中的单价修改后,应该根据该表的“单价“和“数量“字段修改 order_list 表的总金额字段,现在有部分 order_list 记录的总金额字段值不正确,请编写程序挑出这些记录,并将这些记录存放到一个名为 od_mod 的表中(与 o
4、rder_list 表结构相同,自己建立),然后根据order_detail 表的“单价“和“数量“字段修改 od_mod 表的总金额字段(注意一个 od_mod 记录可能对应几条order_detail 记录),最后 od_mod 表的结果要求按总金额升序排序,编写的程序最后保存为prog1.prg。(分数:2.00)_国家二级 VF 机试(操作题)-试卷 280 答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生目录下完成如下操作:(1)打开“订货管理“数据库,并将表 order_list 添加到该数据库中。(2)在“订货管理“数据库中建
5、立表 order_detail,表结构描述如下:订单号 字符型(6)器件号 字符型(6)器件名 字符型(16)单价 浮动型(10.2)数量 整型(3)为新建立的 order_detail 表建立一个普通索引,索引名和索引表达式均是“订单号“。(4)建立表 order_list 和表 order_detail 间的永久联系(通过“订单号“字段)。(分数:2.00)_正确答案:(正确答案:【操作步骤】 (1)步骤 1:单击常用工具栏中的“打开“按钮,选择打开数据库文件订货管理。 步骤 2:在“数据库设计器-订货管理“中单击鼠标右键,显示右击菜单,选择“添加表“命令,并选择相应的表文件即可(orde
6、r_list)。 (2)在命令窗口输入以下语句。 CREATE TABLE order_detail (订单号 C(6), 器件号 C(6), 器件名 C(16), 单价 F(10,2), 数量 I) (3)步骤 1:单击常用工具栏中的“打开“按钮,选择打开数据库文件订货管理。 步骤 2:在“数据库设计器-订货管理“中,选择表“order_detail“并单击鼠标右键,选择“修改“命令项。 步骤 3:在“表设计器-order_detail.dbf“中,选择“索引“选项卡,输入索引名“订单号“,选择类型为“普通索引“,表达式为“订单号“。 注意:如果表设计器已经打开,那么就可以直接操作第 3 步
7、即可。 (4)在“数据库设计器-订货管理“中,将“order_list“表中的“订单号“设置为主索引,按住“订单号“主索引不放,然后移动鼠标拖到“order_detail“表中的索引键为“订单号“处,松开鼠标即可。)解析:二、简单应用题(总题数:1,分数:2.00)2.在考生目录下完成如下简单应用:(1)将 order_detail1 表中的全部记录追加到 order_detail 表中,然后用 SQL SELECT 语句完成查询:列出所有订购单的订单号、订购日期、器件号、器件名和总金额(按订单号升序,订单号相同再按总金额降序),并将结果存储到 results 表中(其中订单号、订购日期、总金
8、额取自 order_list 表,器件号、器件名取自 order_detail 表)。(2)打开 modi1.prg 命令文件,该命令文件包含 3 条 SQL 语句,每条 SQL 语句中都有一个错误,请改正之(注意:在出现错误的地方直接改正,不可以改变 SQL 语句的结构和 SQL 短语的顺序)。(分数:2.00)_正确答案:(正确答案:(1)【操作步骤】 步骤 1:在命令窗口输入下列语句。先把 order_detail1 表的记录全部添加到 order_detail 表中 USE order_detail APPEND FROM order_detail1 步骤 2:SQL SELECT 语
9、句完成查询 SELECT Order_list.订单号, Order_list.订购日期, Order_detail.器件号, Order_detail.器件名, Order_list.总金额; FROM 订货管理!order_list INNER JOIN 订货管理!order_detail ON Order_list.订单号 = Order_detail.订单号; ORDER BY Order_list.订单号, Order_list.总金额 DESC; INTO TABLE results.dbf (2)【操作步骤】 第 1 处 所有器件的单价增加 5 元,所以应改为:UPDATE or
10、der_detail1 SET 单价 = 单价 + 5 第 2 处 计算每种器件的平均单价,所以应改为:SELECT 器件号,AVG(单价) AS 平均价 FROM order_detail1 group BY 器件号 INTO CURSOR lsb 第3 处 查询平均价小于 500 的记录,所以应改为:SELECT * FROM lsb where 平均价 aa select order_list scatt to mm select tmp append blank gath from mm replace 总金额 with ff.aa endif select order_list skip enddo SELECT * FROM tmp ORDER BY 总金额 INTO dbf od_mod 保存程序文件名为 prog1.prg,并运行。)解析: