1、国家二级 VF机试(操作题)模拟试卷 129及答案与解析 一、基本操作题 1 在考生文件夹下,打开一个公司销售数据库 selldb,完成如下操作: (1)为各部门分年度季度销售金额和利润表 s_t创建一个主索引和普通索引 (升序 ),主索引的索引名为 no,索引表达式为 “部门号 +年度 ”;普通索引的索引名和索引表达式均为 “部门号 ”。 (2)在 S T表中增加一个名为 “备注 ”的字段、字段数据类型为 “字符 ”、宽度为30。 (3)使用 SQL的 ALTER TABLE语句将 s_t表的 “年度 ”字段的默认值修 改为“2004 ”,并将该 SQL语句存储到命令文件 one prg中。
2、 (4)通过 “部门号 ”字段建立 s_t表和 dept表间的永久联系,并为该联系设置参照完整性约束:更新规则为 “级联 ”;删除规则为 “限制 ”;插入规则为 “忽略 ”。 二、简单应用题 2 (1)编写程序 three prg完成下列操作:根据 “外汇汇率 ”表中的数据产生 rate表中的数据。 要求:将所有 “外汇汇率 ”表中的数据插入 rate表中并且顺序不变,由于 “外汇汇率 ”中的 “币种 1”和 “币种 2”存放的是外币名称,而 rate表中的 “币种 1代码 ”和 “币种2代码 ”应该存放外币代码,所以插入时要做相应的改动, “外币名称 ”与 “外币代码 ”的对应关系存储在 “
3、外汇代码 ”表中。 注意:程序必须执行一次,保证 rate表中有正确的结果。 (2)使用查询设计器建立一个查询文件 four qpr。查询要求:从外汇账户中查询“日元 ”和 “欧元 ”的记录。查询结果包括了外币名称、钞汇标志、金额,结果按 “外币名称 ”升序排序,在 “外币名称 ”相同的情况下按 “金额 ”降序排序,并将查询结果存储于表 five dbf中。 三、综合应用题 3 在考生文件夹下有一个名为 myform的表单,表单中包括一个列表框和两个命令按钮。请在该表单中完成如下操作: 在表单设计器环境下设置列表框的数据源 (ROWSourlce)和数据源类型(RowSourceType)两个
4、属性。设置 RowSourceType属性为 3,在 RowSource属性中使用 SQL的 SELECTINTO CuRSOR 语句根据 “国家 ”表中 “国家名称 ”字段的内容在列表框中显示 “国家名称 ”(注意:不要使用命令指定这两个属性 )。 为 “生成表 ”命令按钮编写程序。程序的功能是根据表单运行时列表框中选定的国 家名称,将 “获奖牌情况 ”表中相应国家的所有记录存入以该国家名称命名的自由表中,自由表中包含 “运动员名称 ”、 “项目名称 ”和 “名次 ”三个字段,并按照 “名次 ”升序排列。 提示:假设从列表框中选择的围家名称存放在变量 gm中,那么在 SQL SELECT语句
5、中使用短语 into table& gm就可以将选择的记录存入以该国家名命名的自由表中。 运行表单,分别生成存有 “中国 ”、 “日本 ”、 “美国 ”、 “俄罗斯 ”4个国家获奖情况的 4个自由表。 国家二级 VF机试(操作题)模拟试卷 129答案与解析 一、基本操 作题 1 【正确答案】 (1) 在命令窗口执行命令: MODIFY DATABASE selldb,打开selldb数据库设计器。 右击数据库设计器中的 s_t表,选择【修改】快捷菜单命令,打外 s_t表设计器,选中 “索引 ”选项卡,在 “索引名 ”下方的文本框中输入“no”,在 “索引 ”选项卡中将 “类型 ”选择为 “主索
6、引 ”,在表达式下方的文本框中输入“部门号 -+年度 ”,建立主索引。如图 4-18所示。 接着在 “字段 ”选项卡中选中 “部门号 ”,然后在 “索引 ”列中选择 “升序 ”,建立 “部门号 ”字段的普通索引,单击 “确定 ”按 钮保存表结构修改。 (2)继续打开 s_t表设计器,在表设计器 “字段 ”选项卡的 “字段名 ”列的最后一个空白文本框中输入字段名 “备注 ”,在 “类型 ”下拉框中选择 “字符型 ”,在 “宽度 ”文本框中输入 “30”,保存表结构修改。 (3) 在命令窗口执行命令: MODIFY COMMAND one,打开程序文件编辑器。 在编辑器中输入SQL查询代码: AL
7、TER TABLE s_t ALTER年度 C(4) DEFAuLT“2004“。 在命令窗口执行命令: DO ne prg,执行程序文件。 (4) 在数据库设计器中拖动 DEPT表 “索引 ”下方的主索引 “部门号 ”到 s_t表中 “索引 ”下方的普通索引 “部门号 ”是,为两个表建立联系。 选中两个表之间的关联线 (被选中的连线会变粗 ),首先执行【数据库】 【清理数据库】菜单命令,清空数据表中带有删除标记的记录,然后执行【数据库】 【编辑参照完整性】菜单命令。 在打开的 “参照完整性 ”对话框的表格中,选择 “更新 ”下的单元格内容为 “级联 ”; “删除 ”下的单元格内容为 “限制
8、”; “插入 ”下的单元格内容为 “忽略 ”。单击 “确定 ”按钮保存参照完整性的修改。如图 4-19所示。 【试题解析】 本题考查表 索引的建立、表结构的修改、 SQL定义语句及参照完整性的建立。 根据多个字段建立索引表达式时,需要在表设计器 “索引 ”选项卡的 “表达式 ”中进行设置,该索引表达式可以直接输入,也可以打开 “表达式生成器 ”建立。 参照完整性是针对两个表进行设置的,因此建立参照完整性前要先建立两个表的关联,且有一个表中必须建立关联字段的主索引 (或候选索引 ),另一个表要建立普通索引,建立两个表联系后要先清理数据库,然后再设置参照完整性。 表结构的修改可在相应的表设计器中进
9、行操作即可; SQL定义语句也只需要熟记命令 格式,设置表默认值语句的基本格式: ALTER TABLEALTERDEFAuLT。 二、简单应用题 2 【正确答案】 (1)步骤 1:命令窗口执行: MODIFY COMMAND three,打开程序文件编辑器,输入如下程序代码 (以下程序足通过查询设计器牛成 ): 1 SELECT 外代码外币代和 AS币种 1代码; 2 外汇代码 a外币代码 AS币种 2代码,外 汇汇率买入价,外汇汇率卖出价; 3 FROM 外汇 !外汇代码 INNER JOIN外汇 !外汇汇率; 4 INNER JOIN 外汇 !外汇代码 外汇代码 a; ON 外汇汇率币种
10、 2=外汇代码 a外币名称; 6 ON外汇代码外币名杨 =外汇汇率币种; 7 INTO ARRAY arrl 8 INSERTINTO RATE DBF FROM ARRAY arrl 步骤 2:命令窗口执行: DO three prq,执行程厅文件。 (2)步骤 2:命令 窗口执行: CREATE QUERY four,打开查询设计器,在“添加表或视图 ”对话框中,分别双击 “外汇代码 ”表和 “外汇账户 ”表,添加到查询设计器中。 步骤 3:添加后,弹出 “联接条什 ”对话框,自动查找两个表中相匹配的字段进行联接,单击 “确定 ”设置联系。 步骤 4:依次双击 “外汇代码 ”表中的 “外币
11、名称 ”和 “外汇账户 ”表中的 “钞汇标志 ”、 “金额 ”字段,添加到 “字段 ”选项卡的 “选定宁段 ”列表中。 步骤 5:在 “筛选 ”选项卡的 “字段名 ”下拉列表中选择 “外汇代码外币名称 ”字段, 在 “条件 ”下拉框中选择 “=”,在 “实例 ”框中输入 “日元 ”,在 “逻辑 ”下拉框中选择 “OR”;接着在第二行接着输入查询条件,在 “字段名 ”下拉列表中选择 “外汇代码外币名称 ”字段,在 “条件 ”下拉框中选择 “=”,在 “实例 ”框中输入 “欧元 ”。 步骤 6:在 “排序依据 ”选项卡内双击 “选定字段 ”列表框中的 “外汇代码 .外币名称 ”字段,将字段添加到
12、“排序条什 ”列表框中,在 “排序选项 ”中选择 “升序 ”单选项;以同样的力 法冉设置 “外汇账户金额 ”字段的降序。 步骤 7:执行【查询】 【查询去向】菜单命令,在弹出的 “查询去向 ”对话框中单击 “表 ”图标按钮,接着在 “表名 ”中输入文件名 “five”,单击 “确定 ”按钮。 步骤 8:最后单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将查询文件保存到考生文件夹下。 【试题解析】 (1)本题考查的是 SQL超链接查询。设计 SQL代码的关键是建立“外汇代码 ”表中 “外币代码 ”与 “外汇汇率 ”表中 “币种 1”和 “币种 2”的联系。 由于输出结果的 “币种 1”和
13、“币种 2”需要用相应的 “外币代码 ”表示, “外汇代码 ”表中的 “外币代码 ”只能利用一次,即替换 “币种 1”或 “币种 2”中的币种名称,这样没 有被替换的币种仍然是中文币种名称,因此需要将 “外汇代码 ”表利用两次,两个表中的 “外币代码 ”分别替换 “外汇汇率 ”表中 “币种 1”和 “币种 2”的中文币种名,被两次引用的表名要在原表名后再加 “a”进行区分。 三个表的联接条件分别是 “外汇代码外币名称 =外汇汇率币种 1”和 “外汇汇率币种 2=外汇代码 a外币名称 ”。查询输出的字段名可以通过 AS短语重新指定名称。 另外,查询结果要求保存到数据库表,因此要将结果保存到数组中
14、,然后再通过数组将记录插入到表中。 (2)本题考查的是在查询设计器中新建查询的操作 。操作过程中要注意确认查询输出的字段来源于哪个表;查询条件在 “筛选 ”选项卡中设置;排序在 “排序依据 ”选项卡中设置;查询去向可通过执行【查询】 【查询去向】菜单命令,在 “查询去向 ”对话框中进行操作。 三、综合应用题 3 【正确答案】 步骤 1:命令窗口执行: MODIFY FORM mvform,打开表单设计器修改表单。 步骤 2:选中表单中的列表框 (Listl),存属性面板中修改其 RowSourceType属性值为: 3-SQL语句;同时指定 RowSource属性值为: SELECT国家名称
15、FROM国家 INTO CURSOR mylist 步骤 3:双出 “生成表 ”命令按钮,编写 Click事件代码。代码如下: *“生成表 ”按钮的 Click事什代码 * 1 gm=“SS“ 2 gm=THISFORM LIsTl VALuE 3 SELECT运动员名称,项目名称,名次; 4 FROM获奖牌情况,国家 WHERE 国家国家名称 =gmj 5 AND获奖牌情况国家代码 =国家国家 代码; 6 ORDER BY名次 INTO DBF gm 步骤 4:单击 “常用 ”工具栏中的 “运行 ”按钮禽看结果,分别选中列表框中的 “中国 ”、 “日本 ”、 “美国 ”和 “俄罗斯 ”4个条目生成对应的表,将表单文件保存到考生文件夹。 【试题解析】 本大题考查了表单及控件的常用属性和方法的设置; SQL简单联接查询。 本题关键是 SQL查询语句中怎样将列表框中被选中的 “国家名称 ”内容命名为表名。解决此问题的方法就是先定义一个变量等于列表框中的被选定的条目值,然后使用宏替换函数 (&)将变量值替换 出来。 本题进查询的两个表是 “国家 ”表和 “获奖牌情况 ”表通过 “国家代码 ”联接,利用ORDER BY对查询结果排序,利用 INTO DBF(或 INTO TABLE)将结果输出到数据表中。