1、国家二级 VF 机试-试卷 192 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.(1)打开“订单管理”数据库,然后从中删除 customer 表。 (2)为 employee 表建立一个普通索引,索引名为 xb,索引表达式为“性别”,升序索引。 (3)为 employee 表建立一个普通索引,索引名为 xyz,索引表达式为“str(组别,1)+职务”,升序索引。 (4)为 employee 表建立主索引,为 orders 建立普通索引,索引名和索引表达式均为“职员号”。通过“职员号”在 employe
2、e 表和 orders 之间建立一个一对多的永久联系。(分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.在考生文件夹下,打开招生数据库 sdb,完成如下简单应用:(1)使用一对多表单向导选择 ksb 表和kscb 表生成一个名为 two 的表单。要求从父表 ksb 中选择所有字段,从子表 kscjb 中选择所有字段,使用“考生号”建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为考生号(来自 ksb),升序:表单标题为“考生数据输入维护”。 (2)在考生文件夹下打开命令文件 threeprg,该命令文件用来查询所有成绩都高于
3、或等于平均分的学生的考生号和姓名。并将查询结果存储到表 three 中。注意,该命令文件在第 3 行、第 6 行、第 9 行有错误,打开该命令文件,直接在错误处修改,不可改变 SQL 语句的结构和短语的顺序,不允许增加、删除或合并行。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.在考生文件夹下,先打开“宾馆”数据库,然后创建一个文件名为 test 的表单,如图 1-33 所示。(分数:2.00)_国家二级 VF 机试-试卷 192 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操
4、作题()(分数:2.00)_解析:2.(1)打开“订单管理”数据库,然后从中删除 customer 表。 (2)为 employee 表建立一个普通索引,索引名为 xb,索引表达式为“性别”,升序索引。 (3)为 employee 表建立一个普通索引,索引名为 xyz,索引表达式为“str(组别,1)+职务”,升序索引。 (4)为 employee 表建立主索引,为 orders 建立普通索引,索引名和索引表达式均为“职员号”。通过“职员号”在 employee 表和 orders 之间建立一个一对多的永久联系。(分数:2.00)_正确答案:(正确答案:(1)在命令窗口执行命令: MODIFY
5、 DATABASE 订单管理,打开数据库设计器。右击数据库设计器中的“customer”表,选择【删除】快捷菜单命令,在弹出的 Visual FoxPro 对话框中单击“删除”按钮,将“customer”表永久性删除。 (2)接上小题操作,在数据库设计器中右击数据库设计器中的 employee 表,选择【修改】快捷菜单命令,打开 employee 表设计器,选中“索引”选项卡,在“索引名”下方的文本框中输入“xb”,在“索引”选项卡中将“类型”选择为“普通索引”,在“表达式”下方的文本框中输入“性别”。 (3)接上小题操作,继续在表设计器的“索引”选项卡的第二行中,输入“索引名”为“xyz”,
6、在“索引”选项卡中将“类型”选择为“普通索引”,在“表达式”下方的文本框中输入:STR(组别,1)+职务。 (4)接上小题操作,继续在表设计器的“索引”选项卡的第三行中,输入“索引名”为“职员号”,在“索引”选项卡中将“类型”选择为“主索引”,在“表达式”下方的文本框中输入“职员号”,单击“确定”按钮保存表结构修改。 参照以上操作,为 orders 表建立一个“职员号”字段的普通索引。在数据库设计器中拖动 employee 表“索引”下方的主索引“职员号”到 orders 表中“索引”下方的普通索引“职员号”上,为两个表建立联系。)解析:解析:本大题考查了数据库的基本操作;索引的建立;表间联系
7、的建立。 在数据库中删除和添加表时,可以打开数据库设计器操作,注意删除农时选择正确的操作。 根据多个字段建立索引表达式时,需要表设计器“索引”选项卡的“表达式”中进行设置,该索引表达式可以直接输入,也可以打开“表达式生成器”建立。对两个表建立联系是在数据库设计器中进行操作的,通过两个表中的主索引和普通索引进行联接。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.在考生文件夹下,打开招生数据库 sdb,完成如下简单应用:(1)使用一对多表单向导选择 ksb 表和kscb 表生成一个名为 two 的表单。要求从父表 ksb 中选择所有字段,从子表 ksc
8、jb 中选择所有字段,使用“考生号”建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为考生号(来自 ksb),升序:表单标题为“考生数据输入维护”。 (2)在考生文件夹下打开命令文件 threeprg,该命令文件用来查询所有成绩都高于或等于平均分的学生的考生号和姓名。并将查询结果存储到表 three 中。注意,该命令文件在第 3 行、第 6 行、第 9 行有错误,打开该命令文件,直接在错误处修改,不可改变 SQL 语句的结构和短语的顺序,不允许增加、删除或合并行。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:在命令窗口执行命令: OPEN DATABASE sdb ,
9、打开 SDB 数据库。 步骤 2:执行【文件】【新建】菜单命令,或单击“常用”工具栏的“新建”按钮,在弹出的“新建”对话框中选中“表单”选项,然后单击“向导”图标按钮,系统弹出“向导选取”对话框,选中“一对多表单向导”项,单击“确定”按钮,启动表单向导。如图 2-38 所示。 )解析:解析:(1)本题主要考查的是表单向导的使用。操作比较简单,只需根据向导提示一步步完成操作即可。 (2)本题主要考查的是 SQL 简单查询和嵌套查询本题先用一个 SQL 简单查询获得平均分,由于平均分是一个数字,并且以后还要将考生成绩与谊平均分进行比较,所以应将其存放在一个数组中,而不是存放在临时表中,所以应将第一
10、处错误 INTO CURSOR temp 改为 INTO ARRAY temp。 题中第二个 SQL 语句为嵌套查询,使用了 exists 谓词,用来检查子查询中是否有结果返回根据本题要求,要查找所有成绩都高于或等于平均分的学生的考生号和姓名,换句话说,也就是只要考生有一门成绩小于平均分,该考生就不符合条件查询的基本过程是:对于外查询中的 ksb 表中的每个考生号,在内查询中的 kscjb 表中判断是否谊考生编号有一门成绩小于平均成绩,只要有一门成绩小于平均成绩,谊考生号都不该被查找出来,故第二处错误是在外查询中的条件中应使用 not exits,而不是 exists。在内查询中,条件“成绩t
11、emp(1)”和“考生号=ksb考生号”应该用 AND 联接。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.在考生文件夹下,先打开“宾馆”数据库,然后创建一个文件名为 test 的表单,如图 1-33 所示。(分数:2.00)_正确答案:(正确答案:步骤 1:在命令窗口执行命令: CREATE FORM test ,打开表单设计器新建表单。从“表单控件”工具栏中依次向表单添加一个标签、一个文本框和两个命令按钮。 步骤 2:在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值,见表 2-32。 )解析:解析:本大题主要考查了表单及控件的常用属性和方法的设置;SQL 超联接查询。 本题的关键是建立超联接时,每两个表之间进行联接的字段是哪个,另外,还要判断指定输出的字段来自哪个表。设计SQL 语句前,考生可以先打开数据库设计器查看各表中的字段,判断输出哪个表中的字段及进行联接的字段是哪几个。 如果对于 SQL 不熟悉的考生,则可借助查询设计器完成本题的 SQL 查询,需要注意的是,在设置筛选条件时,由于文本框中显示的是字符型数据,而“退房日期”是日期型数据,因此,要将文本框的数据类型通过 CTOD()函数转换成日期型函数,通过 VALUE 属性可以获得文本框中的数据。