1、国家二级 VF 机试-试卷 145 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.注意:基本操作题为 4 道 SQL 题,请将每道题的 SQL 命令粘贴到 sql al.txt 文件,每条命令占一行,第 1 道题的命令是第 1 行,第 2 道题的命令是第 2 行,以此类推;如果某道题没有做,相应行为空。 在考生文件夹下完成下列操作: (1)利用 SQL SELECT 命令将表 stock sl.dbf 复制到 sto,ck bk.dbf。 (2)利用 SQL INSERT 命令插入记录(“600028“
2、,4.36,4.60,5500)到 stock bk.dbf 表。 (3)利用 SQL UPDATE 命令将 stock_bk.dbf 表中“股票代码”为“600007”的股票“现价”改为 8.88。 (4)利用 SQL DELETE 命令删除 stock_bk.dbf 表中“股票代码”为“600000”的股票。(分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1)在考生文件夹下有一个数据库 stsc,其中有数据库表 student、score 和 course,利用 SQL 语句查询选修了“网络工程”课程的学生的全部信息,并将结果按学
3、号降序存放在 netp.dbf 文件中(表的结构同 student,并在其后加入课程号和课程名字段)。 (2)在考生文件夹下有一个数据库 stsc,其中有数据库表 student,使用一对多报表向导制作一个名为 cjb 的报表,存放在考生文件夹下。要求:从父表student 中选择学号和姓名字段,从子表 score 中选择课程号和成绩,排序字段选择学号(升序),报表式样为简报式,方向为纵向。报表标题为“学生成绩表”。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.在考生文件夹下有仓库数据库 ck3,包括如下所示两个表文件: ck(仓库号
4、 C(4),城市 C(8),面积 N(4)zg(仓库号 C(4),职工号 C(4),工资 N(4) 设计一个名为 zg3 的菜单,菜单中有两个菜单项“统计”和“退出”。 程序运行时,单击“统计”菜单项应完成下列操作:检索出所有职工的工资都大于 1220 元(不包括 1220 元)的职工所管理的仓库信息,将结果保存在 whl 数据表(whl 为自由表)文件中,该文件的结构和 ck 数据表文件的结构一致,并按面积升序排序。 单击“退出”菜单项,程序终止运行。 (注意:相关数据表文件存在于考生文件夹下)(分数:2.00)_国家二级 VF 机试-试卷 145 答案解析(总分:12.00,做题时间:90
5、 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.注意:基本操作题为 4 道 SQL 题,请将每道题的 SQL 命令粘贴到 sql al.txt 文件,每条命令占一行,第 1 道题的命令是第 1 行,第 2 道题的命令是第 2 行,以此类推;如果某道题没有做,相应行为空。 在考生文件夹下完成下列操作: (1)利用 SQL SELECT 命令将表 stock sl.dbf 复制到 sto,ck bk.dbf。 (2)利用 SQL INSERT 命令插入记录(“600028“,4.36,4.60,5500)到 stock bk.dbf 表。 (3)
6、利用 SQL UPDATE 命令将 stock_bk.dbf 表中“股票代码”为“600007”的股票“现价”改为 8.88。 (4)利用 SQL DELETE 命令删除 stock_bk.dbf 表中“股票代码”为“600000”的股票。(分数:2.00)_正确答案:(正确答案:请查看 sql al.txt 文件,其中的 4 条语句分别为: (1)SELECT * FROM stock sl INTO TABLE stock bk (2)INSERT INTO stock_bk VALUE(“600028“,4.36,4.60,5500) (3)UPDATE stock_bk SET 现价=
7、8.88 WHERE 股票代码=“600007“ (4)DELETE FROM stock_bk WHERE 股票代码=“600000“)解析:解析:本大题主要考查了 SQL 的操作功能,包括数据的插入(INSERT)、更新(UPDATE)和删除(DELETE)。复制表可以使用 SQL 查询功能中表的去向语句来实现。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.(1)在考生文件夹下有一个数据库 stsc,其中有数据库表 student、score 和 course,利用 SQL 语句查询选修了“网络工程”课程的学生的全部信息,并将结果按学号降序存放
8、在 netp.dbf 文件中(表的结构同 student,并在其后加入课程号和课程名字段)。 (2)在考生文件夹下有一个数据库 stsc,其中有数据库表 student,使用一对多报表向导制作一个名为 cjb 的报表,存放在考生文件夹下。要求:从父表student 中选择学号和姓名字段,从子表 score 中选择课程号和成绩,排序字段选择学号(升序),报表式样为简报式,方向为纵向。报表标题为“学生成绩表”。(分数:2.00)_正确答案:(正确答案:(1)在命令窗口输入命令:MODIFY COMMAND query,打开程序文件编辑器。 在程序文件编辑窗口中输入如下程序段: *程序文件 quer
9、y.prg 程序内容* SELECT student.*,score.课程号,course.课程名; FROM stsc!student INNER JOIN stsc!score; INNER JOIN stsc!course; ON score.课程号=course.课程号; ON student.学号=score.学号; WHERE AT(“网络工程“,course.课程名)0; ORDER BY student.学号 DESC; INTO TABLE netp.dbf 保存程序文件,在命令窗口输入命令:DO query,完成查询。 (2)请按以下步骤完成: 利用菜单命令“文件”“新建”
10、,或从常用工具栏中单击新建按钮,在弹出的“新建”对话框中选择“报表”单选项,再单击“向导”按钮,系统弹出“向导选取”对话框,在列表框中选择“一对多报表向导”,单击“确定”按钮。 选择“一对多报表向导”后,系统首先要求选择一对多报表中作为父表的数据表文件。根据题意,选择 student 表作为父表,如图 3-12 所示,从“可用字段”列表框中将“姓名”和“学号”字段添加到右边的“选定字段”列表框中,用做父表的可用字段。 )解析:解析:本大题 1 小题考查的是利用 SQL 语句进行多表查询以及查询输出,程序设计中应注意数据表之间的关联以及查询结果的分组排序;2 小题主要考查报表向导的使用,只要根据
11、每个向导界面的提示来完成相应的步骤即可。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.在考生文件夹下有仓库数据库 ck3,包括如下所示两个表文件: ck(仓库号 C(4),城市 C(8),面积 N(4)zg(仓库号 C(4),职工号 C(4),工资 N(4) 设计一个名为 zg3 的菜单,菜单中有两个菜单项“统计”和“退出”。 程序运行时,单击“统计”菜单项应完成下列操作:检索出所有职工的工资都大于 1220 元(不包括 1220 元)的职工所管理的仓库信息,将结果保存在 whl 数据表(whl 为自由表)文件中,该文件的结构和 ck 数据表文件的
12、结构一致,并按面积升序排序。 单击“退出”菜单项,程序终止运行。 (注意:相关数据表文件存在于考生文件夹下)(分数:2.00)_正确答案:(正确答案:在命令窗口输入命令:CREATE MENU zg3,系统弹出一个“新建菜单”对话框,在对话框中单击“菜单”按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“统计”和“退出”,接着在“统计”菜单行的“结果”下拉框中选择“过程”选项(用于编写程序),在“退出”菜单行的“结果”下拉框中选择“命令”选项,如图 3-11 所示。 )解析:解析:本大题考查的主要是利用 SQL 的嵌套查询来完成两个数据表之间的记录查找,此处应注意运算符 IN 和 NOT IN 的使用;在菜单的设计过程中主要是注意两个菜单命令在“结果”下拉框中应选择的类型。