1、上机操作题模拟试卷 8及答案与解析 一、基本操作题 1 (1)建立数据库 orders manage。 (2)将自由表 employee和 orders添加到新建的 ordersmanage数据库中。 (3)表 employee与表 orders具有一对多联系,为建立两表之问的联系建立必要的索引。 (4)建立两表之间的联系并设置参照完整性规则如下:更新规则为 “级联 ”,删除规则为 “级联 ”,插入规则为 “限制 ”。 二、简单应用题 2 (1)使用 SQL语句查询每个职工所经手的具有最高金额的订购单信息 (orders表 ),并将结果按金额升序存储到表 results中。 (2)使用 SQL
2、命令建立视图 view b,视图中是目前在 orders表中没有所签订单的职工 (employee)信息,记录按仓库号降序排列;同时把所用命令保存在文本文件viewb txt中。 三、综合应用题 3 建立一个表单,表单文件名和表单控件名均为 myform-b),表单标题为 “订单管理 ”,表单其他功能如下: 表单中含有一个页框控件 (PageFramel)和 个 “退出 ”命令按钮 (Commandl),单击 “退出 ”命令按钮关闭并释放表单。 页框控件 (PageFramel)中含有 3个页面,每个页面都通过一个表格控件显示有关信息: 第一个页面 Pagel上的标题为 “职工 ”,其上的表格
3、控件名为 grdEmployee,显示表 employee中的内容。 第二个页面 Page2上的标题为 “订单 ”,其上的表格控件名为 grdOrders,显示表orders中的内容。 第三个页面 Page3上的标题为 “职工订单金额 ”,其上的表格控件名为 Gridl,该表格中显示每个职工的职工号、姓名及其所经手的订单总金额 (注:表格只有 3列,第 1列为 “职 工号 ”,第 2列为 “姓名 ”,第 3列为 “总金额 ”)。 上机操作题模拟试卷 8答案与解析 一、基本操作题 1 【正确答案】 为数据库添加表可以在数据库设计器中进行;参照完整性是针对同一数据库中的两个表进行设置的,因此建立参
4、照完整性前要先建立两个表的关联,且有一个表中必须建立关联字段的主索引 (或候选索引 ),另一个表要建立普通索引。本题的重点是如何确立索引。由于 employee表和 orders表的关联字段是 “职工号 ”,而 “职工号 ”在 employee表中是没有重复值的,所以应该在 employee表中的“职工号 ”字段 上建立主索引,相应地,在 orders表的 “职工号 ”字段上建立普通索引。 (1)在命令窗口执行命令: MODIFY DATABAsE,新建数据库并打开数据库设计器。 (2)在数据库设计器中右击鼠标,选择【添加表】快捷菜单命令,在弹出的“打开 ”对话框中双击 employee表,将
5、表添加到数据库中,以同样的方法将 oers表添加到数据库中。如图 3 27和图 3 28所示。 (3) 右击数据库设计器中的employee表,选择【修改】快捷菜单命令,打开 employee表设计器,在 “字段 ”选项卡中选中 “职工号 ”,在 “索引 ”列中选择 “升序 ”,然后在 “索引 ”选项卡中修改 “索引类型 ”为 “主索引 ”,建立 “职工号 ”字段的主索引,单击 “确定 ”按钮保存表结构修改。 右击数据库设计器中的 oers表,选择【修改】快捷菜单命令,打开 orde表设计器,在 “字段 ”选项卡中选中 “职工号 ”,在 “索引 ”列中选择 “升序 ”,建立 “职工号 ”字段的
6、普通索引,单击 “确定 ”按钮保存表结构修改。 拖动 employee表 “索引 ”下方的主索引 “职工号 ”到 orders表中 “索引 ”下方的普通索引 “职工号 ”上,为两个表建立联系。 (4) 选中 employee和 orde两个 表之间的连线 (被选中的线会变粗 ),首先执行【数据库】 -【清理数据库】菜单命令,清空数据库表中带有删除标记的记录,然后执行【数据库】 -【编辑参照完整性】菜单命令。 在打开的 “参照完整性 ”对话框的表格中,选择 “更新 ”下的单元格内容为 “级联 ”; “删除 ”下的单元格内容为 “级联 ”; “插入 ”下的单元格内容为 “限制 ”。单击 “确定 ”
7、按钮保存参照完整性的修改。 【知识模块】 上机操作题 二、简单应用题 2 【正确答案】 本题考查了 sQL分组查询和联接查询。本题的解题思路是:先在orders表中按职工号分组,查询 出每个职工所经手的具有最高金额的订单所对应的职工号和金额,将它保存到临时表中,然后再将 orders表和该临时表做联接查询,查找出每个职工的最高金额订单所对应的 orders表信息。另外,对数据进行分组计算查询时,用来求最大值的函数为 MAX()。 步骤 1:在命令窗口执行如下 SQL命令语句并执行: 步骤 2:在命令窗口继续执行如下 SQL命令语句: 本题主要考查了利用 SQL命令建立视图; SQL嵌套查询。
8、利用 SQL命令建立视图的基本命令格式为: CREAY, EVIEWAS。本题可以用嵌套查询完成,先在内查询中从 0rders表查找出有订单的职工号,再在外查询中从 employee表中找出 0rders表中没有的职工号,这里用到 NOT IN运算符。 步骤 1:在命令窗口执行命令: OPEN DATABASE0rdersmanaqe,打开数据库环境。 步骤 2:在命令窗口执行命令: MODIFY FILE view_b,打开文本文件编辑器编写视图定义代码。 步骤 3:在编辑器中输入如下 程序代码: 步骤 4:在命令窗口执行命令: DO vIEWB TXT,执行文件 【知识模块】 上机操作题
9、三、综合应用题 3 【正确答案】 本题主要考查了表单及控件的常用属性的设置; SQL分组计算查询;表单数据环境。 通过拖放表单数据环境中的表到表单中,可快速建立表格及表格与数据表的联系,要注意的是在向每个页面中添加表格数据对象时,一定要注意页面处于编辑状态下 (每个页面都可单独选定,将表从数据环境中拖放到要求的页面中 ),否则添加的表格对象只是停留在页框上方,该表格实际是包含在表单中而非添加到页框 的页面中。控制页框中页面数的属性为 PageCount。 本题要注意的是,由于在数据库中 employee表和 orders表已经建立了永久联系,所以当将这两张表添加到数据环境中时,二者之间会自动产
10、生一个相应的关联 (临时联系 ),这样,当运行表单后, orders表中的记录就会随着 employee表中当前记录的改变而改变,即 orders表中始终显示的不是整个 orders表的内容,而只是显示 employee表中当前记录在 orders表中对应的记录。而题中要求在 “订单 ”页面显示 orders表的内容,故应该在数据环境中将两 张表的关联删除。 第三个页面的表格中显示的内容需要用 SQL查询语句完成,可以将表格 gridl的表格数据来源属性RecordSourceType设置为 4-SQL,而对应的数据来源 RecordSource可以在表单的Init事件中通过 SQL语句来指定
11、。 步骤 1:在命令窗口执行命令: OPEN DATABASEordersmanage,打开 “orders manage”数据库。 步骤 2:在命令窗口执行命令: CREATE FORMmyform-b,打开表单设计器新建表单。 步骤 3:从 “表单工具栏 ”中依次向表单添加一 个命令按钮和一个页框控件。在 “属性 ”面板的下拉框中选择表单对象,在 “全部 ”选项卡中修改对象属性值,见表 3 12。步骤 4:右击表单选择【数据环境】快捷菜单命令打开表单数据环境,继续在表单数据环境中单击右键选择【添加】快捷菜单命令,在 “添加表或视图 ”对话框中依次双击 employee表和 orders表,
12、将其添加到数据环境中,两者之间的关联也会自动添加其中,选中两个表之间的关联线 (被选中的线会变粗 ),然后按 Delete键,删除该关联。 步骤 5:右击 “页框 ”控件,选择【编辑】快捷菜单命令,让页框处于编辑状态,再将 数据环境中的employee表表分别拖到 “职工 ”和 “订单 ”页面中 (注意:操作过程中,当独立的页面被选中时,页框处于编辑状态,在页框四周会出现蓝色边框,如图 3 29所示;另外,表单设计器窗口应为 “还原 ”状态,而非最火化窗口,否则将遮盖表单数据环境内容,无法将表拖到页面中 )。这时,在 “职工 ”和 “订单 ”页面中会分别自动生成表格 grdEmployee和
13、grdOrders。 步骤 6:接步骤5,当页框处于编辑状态时,选择 “职工订单金额 ”页面,在其中添加一个表格控件酊 dl,在 “属性 ”面板中修改表格的属性值,见表 3-12。 步骤 7:双击表单,编写表单的 Init事件代码: 1 THISFORM PAGEFRAM1l PAGE3 GRID1 R ECORDSOURCE=”; 2 SELECT Employee职工号, Employee姓 名,SUM(Orders金额 )总金额; 3 FROM ordersmanage!employee INNER JOIN ordersmanage!orders; 4 ON Employee职工号 =Orders职工号; 5 GROUP BY Employee职工号; 6 INTO CURSOR temp” (注意:以上 SQL语句的查询语句部分是通过查询设计器生成。 ) 步骤 8:双击命令按钮,编写命令按钮的 Click事件代码: THISFORM RELEASE。 步骤 9:单击 “常用 ”工具栏中的 “运行 ”按钮运行表单。 【知识模块】 上机操作题