1、上机操作题模拟试卷 93及答案与解析 一、基本操作题 1 (1)打开 “订单管理 ”数据库,然后从中删除 customer表。 (2)为 employee表建立一个普通索引,索引名为 xb,索引表达式为 “性别 ”,升序索引。 (3)为 employee表建立一个普通索引,索引名为 xyz,索引表达式为 “str(组别, 1)+职务 ”,升序索引。 (4)为 employee表建立主索引,为 orders建立普通索引,索引名和索引表达式均为“职员号 ”。通过 “职员号 ”在 employee表和 orders之间建立一个一对多的永久联系。 二、简单应用题 2 在考生文件夹下,打开招生数据库 s
2、db,完成如下简单应用: (1)使用一对多表单向导选择 ksb表和 kscb表生成一个名为 two的表单。要求从父表 ksb中选择所有字段,从子表 kscjb中选择所有字段,使用 “考生号 ”建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为考生号 (来自 ksb),升序:表单标题为 “考生数据输入维护 ”。 (2)在考生文件夹下打开命令文件 three prg,该命令文件用来查询所有成绩都高于或等于平均分的学生的考生号和姓名。并将查询结果存储到表 three中 。注意,该命令文件在第 3行、第 6行、第 9行有错误,打开该命令文件,直接在错误处修改,不可改变 SQL语句的结构和
3、短语的顺序,不允许增加、删除或合并行。 三、综合应用题 3 在考生文件夹下,打开 “宾馆 ”数据库,完成如下简单应用: (1)使用查询设计器设计一个名称为 two的查询,查询房价 “价格 ”大于等于 280元的每个客房的 “客房号 ”、 “类型号 ”(来自客房表 )、 “类型名 ”和 “价格 ”。查询结果按“类型号 ”升序排序,并将查询结果输出到表 tabb中。设计完成后,运行该查询。 (2)修改一个名称为 three prg的命令文件。该命令文件用来查询与 “姚小敏 ”同一天入住宾馆的每个客户的 “客户号 ”、 “身份证 ”、 “姓名 ”、 “工作单位 ”,查询结果包括 “姚小敏 ”本人。查
4、询结果输出到表 tabe中。该命令文件在第 3行、第 5行、第 7行和第 8行有错误 (不含注释行 ),打开该命令文件,直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行。修改完成后,运行该命令文件。 上机操作题模拟试卷 93答案与解析 一、基本操作题 1 【正确答案】 (1)在命令窗口执行命令: MODIFY DATABASE订 单管理,打开数据库设计器。右击数据库设计器中的 “customer”表,选择【删除】快捷菜单命令,在弹出的 Visual FoxPro对话框中单击 “删除 ”按钮,将 “customer”表永久性删除。 (2)接上小题操作,在数据库设计
5、器中右击数据库设计器中的 employee表,选择【修改】快捷菜单命令,打开 employee表设计器,选中 “索引 ”选项卡,在 “索引名 ”下方的文本框中输入 “xb”,在 “索引 ”选项卡中将 “类型 ”选择为 “普通索引 ”,在“表达式 ”下方的文本框中输入 “性别 ”。 (3)接上小题操作,继续在表设计器的 “索引 ”选项卡的第二行中,输入 “索引名 ”为“xyz”,在 “索引 ”选项卡中将 “类型 ”选择为 “普通索引 ”,在 “表达式 ”下方的文本框中输入: STR(组别, 1)+职务。 (4) 接上小题操作,继续在表设计器的 “索引 ”选项卡的第三行中,输入 “索引名 ”为“职
6、员号 ”,在 “索引 ”选项卡中将 “类型 ”选择为 “主索引 ”,在 “表达式 ”下方的文本框中输入 “职员号 ”,单击 “确定 ”按钮保存表结构修改。 参照以上操作,为 orders表建立一个 “职员号 ”字段的普通索引。在数据库设计器中拖动 employee表 “索引 ”下方的主索引 “职员号 ”到 orders表中 “索引 ”下方的普通索引 “职员号 ”上,为两个表建立联系。 本大题考查了数据库的基本操作;索引的建立;表间联系的建立。 在数据库中删除和添加表时,可以打开数据库设计器操作,注意删除农时选择正确的操作。 根据多个字段建立索引表达式时,需要表设计器 “索引 ”选项卡的 “表达
7、式 ”中进行设置,该索引表达式可以直接输入,也可以打开 “表达式生成器 ”建立。对两个表建立联系是在数据库设计器中进行操作的,通过两个表中的主索引和普通索引进行联接。 【知识模块】 上机操作题 二、简单应用题 2 【正确答案】 (1)步骤 1:在命令窗口执行命令: OPEN DATABASE sdb,打开SDB数据库。 步骤 2:执行【文件】 【新建】菜单命令,或单击 “常用 ”工具栏的 “新建 ”按钮,在弹出的 “新建 ”对话框中选中 “表单 ”选项,然后单击 “向导 ”图标按钮,系统弹出 “向导选取 ”对话框,选中 “一对多表单向导 ”项,单击 “确定 ”按钮,启动表单向导。 步骤 3:在
8、表单向导的 “步骤 1-从父表选择字段 ”界面的 “数据库和表 ”下选中 “kbs”表,将 “可用字段 ”中的字段全部添加到 “选定字段 ”中,单击 “下一步 ”按钮。 步骤 4:在表单向 导的 “步骤 2-从子表选择字段 ”界面的 “数据库和表 ”下选中“kscjb”表,将 “可用字段 ”中的字段全部添加到 “选定字段 ”中,单击 “下一步 ”按钮。 步骤 5:在表单向导的 “步骤 3-建立表之间的关系 ”界面中系统自动建立两个表的联系,单击 “下一步 ”按钮。 步骤 6:在表单向导的 “步骤 4-选择表单样式 ”界面的 “样式 ”下选中 “阴影式 ”,在“按钮类型 ”下选择 “图片按钮 ”
9、,单击 “下一步 ”按钮。 步骤 7:在表单向导的 “步骤 5-排序次序 ”界面中双击 “可用的字段或索引标识 ”中的 “考生号 ”字段到 “选定字段 ”列表中,再 选择 “升序 ”,单击 “下一步 ”按钮。 步骤 8:在表单向导的 “步骤 6-完成 ”界面中的 “请键入表单标题 ”下方文本框中输入 “考生数据输入维护 ”,单击 “完成 ”按钮。 步骤 9:在 “另存为 ”对话框的 “保存表单为: ”框中输入表单文件名 two,单击 “保存 ”按钮。 (2)步骤 1:在命令窗口执行命令: MODIFY COMMAND three,打开恤three prg程序,命令中的命令代码如下: *该命令文
10、件用来查询所有成绩都高于或等于平均分的学生的考生号和姓名。并将查询结果存储到表 THREE中。 *谈命令文件在笫 3行、第 6行、第 9行有错误,打开该命令文件。 *直接在错误处修改,不可改变 SQL语句的结构和短语的顺序,不允许增加、删除或合并行。 SELECT AVG(成绩 ); FROM kscjb; INTO CURSOR tem SELECT 考生号,姓名; FROM ksb; WHERE 考生号 EXISTS; ( SELECT *; FROM kscjb; WHERE 成绩 tem(1),考生号 =ksb考生号 ); INTO TABLE three 修改程序中的错误行,修 改后
11、的程序如下: SELECT AVG(成绩 ); FROM kscjb, INTO ARRAY tem &将平均成绩存放到数组 array中 SELECT 考生号,姓名, &外查询,在 ksb表中将每一个考生编号与内查询的结果做比较 FROM ksb; WHERE NOT EXISTS; (SELECT*; &在内查询中的 kscjb表中判断是否该考生编号有一门成绩小于平均成绩 FROM kscjb; WHERE成绩 tem(1) and 考生号 =ksb考生号 ); INTO TABLE three 步骤 2:保存文件修改,在命令窗口执行命令: DO three prg,执行程序文件。 (1)
12、本题主要考查的是表单向导的使用。操作比较简单,只需根据向导提示一步步完成操作即可。 (2)本题主要考查的是 SQL简单查询和嵌套查询本题先用一个 SQL简单查询获得平均分,由于平均分是一个数字,并且以后还要将考生成绩与谊平均分进行比较,所以应将其存放在一个数组中,而不是存放在临时表中,所以应将第一处错误INTO CURSOR temp改为 INTO ARRAY temp。 题中第二个 SQL语句为嵌套查询, 使用了 exists谓词,用来检查子查询中是否有结果返回根据本题要求,要查找所有成绩都高于或等于平均分的学生的考生号和姓名,换句话说,也就是只要考生有一门成绩小于平均分,该考生就不符合条件
13、查询的基本过程是:对于外查询中的 ksb表中的每个考生号,在内查询中的kscjb表中判断是否谊考生编号有一门成绩小于平均成绩,只要有一门成绩小于平均成绩,谊考生号都不该被查找出来,故第二处错误是在外查询中的条件中应使用not exits,而不是 exists。在内查询中,条件 “成绩 temp(1)”和 “考生号 =ksb考生号 ”应该用 AND联接。 【知识模块】 上机操作题 三、综合应用题 3 【正确答案】 (1)步骤 1:在命令窗口执行命令: OPEN DATABASE宾馆,打开“宾馆住宿 ”数据库环境。 步骤 2:在命令窗口执行命令: CREATE QUERY two,打开查询设计器,
14、将考生文件夹下的 “客房 ”和 “房价 ”表添加到查询设计器中。 步骤 3:添加两个表后,系统弹出 “联接条件 ”对话框,自动查找两个表中相匹配的字段进行联接,单击 “确定 ”按钮设置两个表的联系。 步骤 4:依次双击 “客房 ”表中的 “客房号 ”、 “类型号 ”字段和 “房价 ”表中的 “类型名 ”、 “价格 ”字段添加到 “字段 ”选项卡的 “选定字段 ”列表中。 步骤 5:在 “筛选 ”选项卡中选择 “字段名 ”为 “房价价格 ”,在 “条件 ”为 “ =”,在“实例 ”框中输入 “280”。 步骤 6:在 “排序依据 ”选项卡内双击 “选定字段 ”列表框中的 “客房类型号 ”字段,将
15、字段添加到 “排序条件 ”列表框中。 步骤 7:执行【查询】 【查询去向】菜单命令,在弹出的 “查询去向 ”对话框中单击 “表 ”图标按钮,接着在 “表名 ”中输入文件名 mbb,单击 “确定 ”按钮。 步骤 8:最后单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将查询文件保存到考生文件夹下。 (2)步骤 1;在命令窗口执行命令: MODIFY COMMAND three,打开程序文件,文件中的命令代码如下: *谊命令文件用来查询与 ”姚小敏 ”同一天入住宾馆的每个客户的客户号、身份证、姓名、工作单位。 查询结果输出到表 TABC中。 *该命令文件在第 3行、第 5行、第 7行和第 8行
16、有错误,打开谊命令文件,直接在错误处修改,不可改变 SQL语句的结构和短语的顺序,不允许增加、删除或合并行。 OPEN DATABASE 宾馆 SELECT客户客户号,身份证,姓名,工作单位; FROM客户 JOIN入住; WHERE入住日期 IN; (SELECT; FROM客户,入住; WHERE姓名 =“姚小敏 “); TO TABLE TABC 修改程序中的错误行,修改后的程序如下: OPEN DATABASE 宾馆 SELECT客户客户号,身份证,姓名,工作单位; FROM 客户 JOIN入住 ON客户客户号 =入住客户号; WHERE入住日期 IN; (SELECT 入住日期; FROM客户,入住; WHERE客户客户号 =入 住客户号 and姓名 =“姚小敏 “); INTO TABLE TABC 步骤 2:保存文件修改,在命令窗口执行命令: DO THREE PRG,执行程序文件。 【知识模块】 上机操作题