1、国家二级 VF机试(操作题)模拟试卷 451及答案与解析 一、基本操作题 1 在考生文件夹下,打开 “宾馆 ”数据库,完成如下操作: (1)打开 “客户 ”表,给 “性别 ”字段增加约束:性别只能为 “男 ”或 “女 ”,默认值为:“女 ”,表达式为:性别 $“男女 ”。 (2)为 “入住 ”表创建一个主索引,主索引的索引名为 fkkey,索引表达式为:客房号+客户号。 (3)根据各表的名称、字段名的含义和存储的内容建立表之间的永久联系,并根据要求建立相应的普通索引,索引名与建索引的字段名相同,升序排序。 (4)使用 SQL的 SELECT语句查询 “客户 ”表中性别为 “男 ”的 “客户号
2、”、 “身份证 ”、“姓名 ”和 “工作单位 ”字段及相应的记录值,并将结果存储到名为 taba的表(注意,该表不需要排序)。请将该语句存储到名为 one prg的文件中。 二、简单应用题 2 在考生文件夹下,打开 “宾馆 ”数据库,完成如下简单应用: (1)使用查询设计器设计一个名称为 two的查询,查询房价 “价格 ”大于等于 280元的每个客房的 “客房号 ”、 “类型号 ”(来自客房表)、 “类型名 ”和 “价格 ”。查询结果按“类型号 ”升序排序,并将查询结果输出到表 tabb中。设计完成后,运 行该查询。 (2)修改一个名称为 three prg的命令文件。该命令文件用来查询与 “
3、姚小敏 ”同一天入住宾馆的每个客户的 “客户号 ”、 “身份证 ”、 “姓名 ”、 “工作单位 ”,查询结果包括“姚小敏 ”本人。查询结果输出到表 tabc中。该命令文件在第 3行、第 5行、第 7行和第 8行有错误(不含注释行),打开该命令文件,直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行。修改完成后,运行该命令文件。 三、综合应用题 3 在考生文件夹下,先打开 “宾馆 ”数据库,然后创建一个文件名为 test的表单, 如图 3-24所示。 该表单完成如下综合应用:在该表单中设计一个标签 ( Labell)、一个文本框 ( Textl)和两个命令按钮。标签
4、的标题文本为 “退房日期大于或等于 ”。文本框用于输入退房日期。两个命令按钮的功能如下: “查询 ”按钮 ( Commandl):在该按钮的 Click事件中使用 SQL的 SELECT命令查询退房日期大于或等于输入日期的 “客户号 ”、 “身份证 ”、 “姓名 ”、 “工作单位 ”和该客户入住的 “客房号 ”、 “类型名 ”、 “价格信息 ”,查询结果按 “价格 ”降序排序,并将查询结果存储到表 tabd中。表 tabd的字 段为 “客户号 ”、 “身份证 ”、 “姓名 ”、“工作单位 ”、 “客房号 ”、 “类型名 ”和 “价格 ”。 “退出 ”按钮 ( Command2)的功能是“关闭和
5、释放表单 ”。表单设计完成后,运行该表单,查询退房日期大于或等于2005-04-01的顾客信息。 国家二级 VF机试(操作题)模拟试卷 451答案与解析 一、基本操作题 1 【正确答案】 (1) 命令窗口执行: MODIFY DATABASE宾馆, 打开数据库设计器。 右击数据库设计器中的 “客户 ”表,选择【修改】,打开 “客户 ”表设计器,选中“字段 ”选项卡中 的 “性别 ”字段,在 “字段有效性 ”的 “规则 ”文本框中输入:性别 $”男女 ”,在 “默认值 ”文本框中输入: ”女 ”,保存表修改。 (2)右击数据库设计器中的 “入住 ”表,选择【修改】,打开 “入住 ”表设计器,选中
6、“索引 ”选项卡,在 “索引名 ”下方的文本框中输入 “fkkey”, “索引 ”选项卡中将 “类型 ”选择 “主索引 ”,在表达式下方的文本框中输入 “客房号 +客户号 ”,建立主索引。 (3) 选中 “入住 ”表单击 “修改 ”按钮,在表设计器的 “字段 ”选项卡中选中 “客户号 ”,在 “索引 ”列的下拉框选择 “升序 ”为表建立普通索引,选中 “客房号 ”字 段名,在 “索引 ”列的下拉框选择 “升序 ”排序方式,单击 “确定 ”按钮保存表结构修改。 参照 “入住 ”表的操作,为 “客房 ”表建立 “类型号 ”字段的普通索引。 数据库设计器中,拖动 “客户 ”表 “索引 ”下方的主索引
7、 “客户号 ”到 “入住 ”表中 “索引 ”下方的普通索引 “客户号 ”上,为两个表建立联系。 以同样的方法建立其他三个表之间的联系,拖动过程中是由主索引字段向普通索引字段进行拖动,且一定要拖到相应的普通索引字段上才可以松开鼠标。 (4) 命令窗口执行: MODIFY COMMAND one, 打开程序文件编辑 器编写视图定义代码如下: SELECT客户号,身份证,姓名,工作单位 FROM客户; WHERE性别 =“男 “ INTO TABLE taba 命令窗口执行: DO one,执行文件。 域完整性;索引; SQL简单查询。 【试题解析】 本题考查字段有效性规则的设置;索引的建立:表间联
8、系: SQL简单查询。 建立表字段有效性规则和字段索引都需要在表设计器中完成。 “默认值 ”和 “规则 ”的设置均属于字段有效性规则范围, “默认值 ”为字符型数据:根据多个字段建立索引表达式时,需要在表设计器 “索引 ”选项卡的 “表达式 ”中进 行设置,该索引表达式可以直接输入,也可以打开 “表达式生成器 ”建立。 本题的关键是要找出每两个表之间的相同字段,并分别设置主索引和普通索引,再进行联接,打开数据库设计器可以看到数据库中所包含的数据表及各数据表中的字段。 SQL简单查询可利用 INTO TABLE短语将查询结果输出到指定的数据表中。 二、简单应用题 2 【正确答案】 (1)步骤 1
9、:命令窗口执行: OPEN DATABASE宾馆, 打开 “宾馆住宿 ”数据库环境。 步骤 2:命令窗口执行: CREATE QUERY two, 打开查询设计器,将考生文件夹下的 “客房 ”和 “房价 ”表添加到查询设计器中。系统弹出 “联接条件 ”对话框,自动查找两个表中相匹配的字段进行联接,单击 “确定 ”按钮设置两个表的联系。 步骤 3:依次双击 “客房 ”表中的 “客房号 ”、 “类型号 ”字段和 “房价 ”表中的 “类型名 ”、 “价格 ”字段添加到 “字段 ”选项卡的 “选定字段 ”列表中。 步骤 4:在 “筛选 ”选项卡中选择 “字段名 ”为 “房价,价格 ”,在 “条件 ”为
10、 “ =”,在“实例 ”框中输入 “280”。 步骤 5: “排序依据 ”选项卡内双击 “选定字段 ”列表框中的 “客房,类型号 ”字段添加到 “排序条件 ”列表框中。 步骤 6:执行【查询】 【查询去向】菜单命令,在 “查询去向 ”中单击 “表 ”按钮,在 “表名 ”中输入文件名 tabb,单击 “确定 ”。 步骤 7:最后单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将查询文件保存到考生文件夹下。 查询的建立与使用。 (2)步骤 1:命令窗口执行: MODIFY COMMAND three, 打开程序文件,文件中的命令代码如下: *该命令文件用来查询与 ”姚小敏 ”同一天入住宾馆的每
11、个 客户的客户号、身份证、姓名、工作单位。查询结果输出到表 TABC中。 *该命令文件在第 3行、第 5行、第 7行和第 8行有错误,打开该命令文件,直接在错误处修改,不可改变 SQL语句的结构和短语的顺序,不允许增加、删除或合并行。 OPEN DATABASE宾馆 SELECT客户,客户号,身份证,姓名,工作单位; FROM客户 JOIN入住; WHERE入住日期 IN; ( SELECT; FROM客户,入住; WHERE姓名 =“姚小敏 “); TO TABLE TABC 修改程序中的错误行,修改后的程序如下: OPEN DATABASE宾馆 SELECT客户客户号,身份证,姓名,工作单
12、位; FROM客户 JOIN入住 ON客户,客户号 =入住,客户号; WHERE入住日期 IN; ( SELECT入住日期; FROM客户,入住; WHERE客户客户号 =入住,客户号 and姓名 =“姚小敏 “); INTO TABLE TABC 步骤 2:保存文件修改,在命令窗口执行命令: DOTHREE PRG,执行程序文件。 SQL中的嵌套查询。 【试题解析】 (1)本题考查的是在查询设计器中新建查询的操作。由于涉及两个表的操作,因此在操作过程中要注意确认查询输出的字段来源于哪个数据表。 在 “筛选 ”选项卡中设置筛选条件,排序是在 “排序依据 ”选项卡中,通过【查询去向】菜单命令打开
13、 “查询去向 ”对话框指定输出去向。 (2)本题主要考查的是 SQL嵌套查询。该程序的功能如下: 通过子查询查找客户名是 “姚小敏 ”的客户入住日期,该查询结果可看作是 一个集合,然后在主查询中查找客户入住日期在这个集合中(即 “姚小敏 ”的入住日期)的客户的相关信息。 根据题意,提供的程序段中第 3、 5、 7、 8行错误,依次判断各行语句可以看出: 第 3行是对两个表进行联接的语句,格式一般为 FROM JOINON ,其中ON短语后面接的是两个表的联接条件,本行中缺少该语句。 第 5行中 SELECT语句后面应指定输出的字段,本行缺少指定输出的字段。 第 7行中仅指定了筛选条件,并没有指
14、定两个表的联接条件(此处涉及两个表联接操作,因此要指定联接条件),本行应补充该联接条件且通过 AND短语 将其与筛选条件联接起来。 第 8行属于固定语法错误,将数据输出到数据表中,应使用 INTO TABLE短语,而不是 TO TABLE。 三、综合应用题 3 【正确答案】 步骤 1:命令窗口执行: CREATE FORM test,打开表单设计器新建表单。从 “表单控件 ”工具栏中依次向表单添加一个标签、一个文本框和两个命令按钮。步骤 2:在 “属性 ”面板的下拉框中选择表单对象,在 “全部 ”选项卡中修改对象属性值,见表 433。步骤 3:双击命令按钮,编写各个命令按钮的 Click事件代
15、码。各按钮代码如下: *“查询 ”按 钮的 Click事件代码 *dd=Allt rim( ThisFo rm Textl Value)SELECT客户客户号:客户身份证,客户,姓名,客户,工作单位,入住,客房号,房价类型名,房价,价格; FROM 客户 INNER JOIN入住; INNER JOIN客房;INNER JOIN房价; ON房价类型号 =客房,类型号; ON客房,客房号 =入住,客房号; ON客户客户号 =入住客户号; WHERE入住,退房日期 =CTOD (dd); ORDER BY房价价格 DESC; INTO TABLE tabd dbf*“退出 ”按钮的Click事件代码 *THISFORM RELEASE步骤 4:单击 “常用 ”工具栏中的 “运行 ”按钮,在文本框中输入日期: 20050401,单击 “查询 ”按钮。最后将表单文件保存到考生文件夹下。创建和运行表单;基本型控件; SQL简单查询。 【试题解析】 本题主要考查了表单及控件的常用属性和方法的设置: SQL超联接查询。 对于 SQL不熟悉的考生,可借助查询设计器完成本题的 SQL查询,需要注意的是,在设置筛选条件时,由于文本框中显示的是字符型数据,而 “退房日期 ”是日期型数据,因此,要将文本框的数据类型通过 CTOD()函数转换成日期型函数,通过 VALUE属性可以获得文本框中的数据。