1、国家二级 VF 机试(操作题)-试卷 261 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.注意:基本操作题为 4 道 SQL 题,请将每道题的 SQL 命令粘贴到 mysqltxt 文件,每条命令占一行,第 1 道题的命令是第 l 行,第 2 道题的命令是第 2 行,以此类推;如果某道题没有做,相应行为空。 (1)利用 SQL SELECT 命令将“数量”表复制到“股票数量 bkdbf”。 (2)利用 SQL INSERT 命令插入记录(“600038“,569,582,4800)到“股票数量 bk”表。 (3)利用 SQL UPDATE
2、命令将“股票数量 bk”表中“股票代码”为“600016”的股票“现价”改为“1683”。 (4)利用 SQL DELETE 命令删除“股票数量 bk”表中“股票代码”为“600009”的记录。(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.在考生文件夹下,打开商品销售数据库 cdb,完成如下简单应用:(1)使用一对多报表向导建立名称为 p order 的报表。要求从父表顾客表 cust 中选择所有字段,从子表订单表 order 中选择所有字段;两表之间采用“顾客号”字段连接;按“顾客号”字段升序排序;报表样式为“经营式”,方向为“纵向”;报表标题为“顾客订单表”。然后修改
3、该报表,在页注脚中增加一个标签“制表人:新思路”;该标签水平居中,标签中的“:”为中文的冒号。 (2)修改一个名称为 TWOPRG 的命令文件。该命令文件统计每个顾客购买商品的金额合计(应付款),结果存储在临时表 1s 中。然后用 Is 中的每个顾客的数据去修改表scust 对应的记录。该命令文件有 3 行语句有错误,打开该命令文件进行修改。 注意:直接在错误处修改,不可改变 SQL 语句的结构和短语的顺序,不允许增加、删除或合并行。修改完成后,运行该命令文件。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.对考生文件夹下的数据库“图书借阅”中的表完成如下操作: 为表 lo
4、ans 增加一个字段“姓名”,字段类型为“宁符型”,宽度为 8。 编写程序 modiproprg 实现以下功能: 根据 borrOWS 表的内容填写表 loans 中“姓名”的字段值。 查询表 loans 中 2008 年 2 月 3 日的借书记录,并将查询结果输入表 rqtable 中。 运行该程序。(分数:2.00)_国家二级 VF 机试(操作题)-试卷 261 答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.注意:基本操作题为 4 道 SQL 题,请将每道题的 SQL 命令粘贴到 mysqltxt 文件,每条命令占一行,第 1 道题的命令是
5、第 l 行,第 2 道题的命令是第 2 行,以此类推;如果某道题没有做,相应行为空。 (1)利用 SQL SELECT 命令将“数量”表复制到“股票数量 bkdbf”。 (2)利用 SQL INSERT 命令插入记录(“600038“,569,582,4800)到“股票数量 bk”表。 (3)利用 SQL UPDATE 命令将“股票数量 bk”表中“股票代码”为“600016”的股票“现价”改为“1683”。 (4)利用 SQL DELETE 命令删除“股票数量 bk”表中“股票代码”为“600009”的记录。(分数:2.00)_正确答案:(正确答案:(1)(4)题所用的语句内容如下。 在命令
6、窗口执行命令: MODIFY FILE MYSQL ,打开文本编辑器编写 SQL 命令。 在编辑器中输入如下程序代码: 1 SELECT*FROM 数量 INTO TABLE股票数量 bk 2 INSERT INTO 股票数量 bk VALUES (“600038“,56 9,582,4800) 3 UPDATE 股票数量 bk SET 现价=1683 WHERE 股票代码=“600016“ 4 DELETE FROM 股票数量 bk WHERE 股票代码 =“600009“ 在命令窗口执行命令: DO MYSQLTXT ,执行文件(注意:执行文件时,文件后缀名txt不能缺省)。)解析:解析:
7、本题考查了 SQL 查询语句和 SQL 操作功能。 本题的关键是有关 SQl操作功能的命令编写,包括插入语句(工 NSERT)、删除语句(DELETE)和更新语句(UPDATE),只要熟记各操作语句的命令格式,直接套用即可完成操作。二、简单应用题(总题数:1,分数:2.00)2.在考生文件夹下,打开商品销售数据库 cdb,完成如下简单应用:(1)使用一对多报表向导建立名称为 p order 的报表。要求从父表顾客表 cust 中选择所有字段,从子表订单表 order 中选择所有字段;两表之间采用“顾客号”字段连接;按“顾客号”字段升序排序;报表样式为“经营式”,方向为“纵向”;报表标题为“顾客
8、订单表”。然后修改该报表,在页注脚中增加一个标签“制表人:新思路”;该标签水平居中,标签中的“:”为中文的冒号。 (2)修改一个名称为 TWOPRG 的命令文件。该命令文件统计每个顾客购买商品的金额合计(应付款),结果存储在临时表 1s 中。然后用 Is 中的每个顾客的数据去修改表scust 对应的记录。该命令文件有 3 行语句有错误,打开该命令文件进行修改。 注意:直接在错误处修改,不可改变 SQL 语句的结构和短语的顺序,不允许增加、删除或合并行。修改完成后,运行该命令文件。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:在命令窗口执行命令: OPEN DATABASE cdb
9、,打开 cdb 数据库。 步骤 2:执行【文件】【新建】菜单命令,或单击“常用”工具栏的“新建”按钮,在弹出的“新建”对话框中选中“报表”选项,然后单击“向导”图标按钮,系统弹出“向导选取”对话框,选中“一对多报表向导”项,单击“确定”按钮,启动报表向导。 步骤 3:在报表向导的“步骤 1-从父表选择字段”界面的“数据库和表”下选中 cust 表,将“可用字段”中的字段全部添加到“选定字段”中,单击“下一步”按钮。 步骤 4:在报表向导的“步骤 2-从子表选择字段”界面的“数据库和表”下选中 order 表,将“可用字段”中的字段全部添加到“选定字段”中,单击“下一步”按钮。 步骤 5:在报表
10、向导的“步骤 3-为表建立关系”界面中系统自动建立两个表的联系,单击“下一步”按钮。 步骤 6:在报表向导的“步骤 4排序记录”界面中双击“可用的字段或索引标识”中的“顾客号”字段到“选定字段”列表中,再选择“升序”,单击“下一步”按钮。 步骤 7:在报表向导的“步骤 5-选择报表样式”界面的“样式”下选中“经营式”,方向为“纵向”,单击“下一步”按钮。 步骤 8:在报表向导的“步骤 6-完成”界面中的“报表标题”下方文本框中输入“顾客订单表”,单击“完成”桉钮。 步骤 9:在“另存为”对话框的“保存报表为:”框中输入表单文件名 p_order,单击“保存”按钮。 步骤 10:在命令窗口输入命
11、令:MODIFY REPORT p_order,打开报表设计器修改报表。向报表设计器最底端的“页注脚”带区添加一个标签控件,并输入“制表人:新思路”,然后选中标签,在“布局”工具栏中单击“水平居中”命令按钮(工具栏中的倒数第 4 个按钮),设置标签为水平居中。 (2)步骤 1:在命令窗口执行命令:MODIFY COMMAND two,打开程序文件,文件中的命令代码如下: 1 CLOSE DBF 2 PRIVATE no,money 3 USE scust 4 *下面的一行语句有错误 5 SELECT 顾客号,数量*单价应付款; 6 FROM order JOIN comm ON order商品
12、号=comm商品号; 7 GROUP BY 顾客号; 8 INTO cURSOR ls 9 SELECT scust 10 *下面的一行语句有错误 11 DO WHILE EOF() 12 no=顾客号 13 SELECT ls 14 LOCAT FOR 顾客号=no 15 monev=应付款 16 SELECT scust 17 *下面的一行语句有错误 18 REPLACE ALL 应付款=monev 19 sKIP+1 20 ENDDO 21 CLOSE TABLE 22 RETURN 修改程序中的错误行,修改后的程序如下: 1 CLOSE DBF 2 PRIVATE no,money 3
13、 UE scust 4 *下面的一行语句有错误 5 SELECT 顾客号,sum(数量*单价)应付款; 6 FROM order JOIN comm ON order商品号=comm商品号; 7 GROuP BY 顾客号; 8 INTO CURSOR ls 9 SELECT scust 10 *下面的一行语句有错误 11 DO WHILE!EOF() 12 no=顾客号 13 SELECT ls 14 LOCAT FOR 顾客号=no 15 monev=应付款 16 SELECZ、scust 17 *下面的一行语句有错误 18 REPLACE 应付款with monev 19 SKIP+1 2
14、0 ENDDO 21 CLOSE TABLE 22 RETURN 步骤 2:保存文件修改,在命令窗口执行命令:DO two,执行程序文件。)解析:解析:(1)本题考查报表向导以及报表设计器的使用,在报表设计器中添加文字,可以通过“报表控件”工具栏中的“标签”控件进行添加。 (2)本题考查了 DO WHLE 循环语句;SQL 简单的计算查询;visual FoxPro 修改表记录语句,程序的功能大致如下: 首先定义两个私有变量,然后通过 SQL 语句计算每个顾客购买商品的金额合计,将结果保存到一个临时表中;接着通过一个 DO 循环语句逐条判断scust 表中的记录,修改 scust 表中顾客号与
15、临时表 ls 表中顾客号对应相等的“应付款”字段值。 根据对程序语句的分析,可以得知: 第一处错误是 SQL 计算语句错误,要求应付款应该是合计值,输出字段中还缺少 sum()函数进行合计。 第二处错误是 DO 循环条件错误,循环条件应该是没有到记录末尾,因此应使用!eof()。 第三处错误是修改记录的命令错误,应该使用 replacewith命令。三、综合应用题(总题数:1,分数:2.00)3.对考生文件夹下的数据库“图书借阅”中的表完成如下操作: 为表 loans 增加一个字段“姓名”,字段类型为“宁符型”,宽度为 8。 编写程序 modiproprg 实现以下功能: 根据 borrOWS
16、 表的内容填写表 loans 中“姓名”的字段值。 查询表 loans 中 2008 年 2 月 3 日的借书记录,并将查询结果输入表 rqtable 中。 运行该程序。(分数:2.00)_正确答案:(正确答案:步骤 1:命令窗口执行如下两条命令打开 loans 表结构。 USE loans &打开loans 表 MODIFY STRUCTURE &打开表设计器 步骤 2:在表设计“字段”选项卡的“字段名”列的最后一个空白文本框中输入字段名“姓名”,“类型”中选择“字符型”,“宽度”文本框中输入“8”,保存表结构修改。 步骤 3:命令窗口执行: MODIFY COMMAND MODIPROG
17、,打开程序文件编辑器,输入如下程序代码(以下 SQL 奁询语句是通过查询设计器生成): 1 SELECT 借书证号,姓名 FROM BORROWS INTO CURSOR TEMP 2 DO WHILE NOT EOF() 3 UPDATE LOANs SET LOANs姓名=TEMP姓名; 4 WHERE LOANS借书证号=TEMP借书证号 5 SKIP 6 ENDDO 7 SELECT*FROM LOANs WHERE 借书日期 =2008-02-03); 8 INTO TABLE RQTABLE 步骤 5:执行命令: DO MODIPROGPRG ,执行程序。)解析:解析:本大题考查了
18、表结构的修改;DO WHILE 循环语句;SQL 更新语句;SQL 简单查询。 表结构的修改可以在表设计器中或直接通过 SQL 语句修改表。本题基本思路如下: 首先通过简单查询检索BORROWS 表中的“借书证号”和“姓名”内容,将结果保存到临时表中,然后通过 DO WHLE 循环对临时表中的每条记录开始处理,利用 SQL-UPDATE 更新语句修改 LOANS 表中的“姓名”字段值,字段值等于临时表的“姓名”字段值,更新条件为 LOANs 表的“借书证号”等于临时表的“借书证号”;每处理完一条记录,记录指针便指向下一条记录,处理完临时表中所有记录后,退出 DO WHILE 循环;最后再通过 SQL 简单查询检索 LOANs 表中借书日期等于“2008-02-03”的记录。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1