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