数据库系统应用上机实验指导书.doc_第1页
数据库系统应用上机实验指导书.doc_第2页
数据库系统应用上机实验指导书.doc_第3页
数据库系统应用上机实验指导书.doc_第4页
数据库系统应用上机实验指导书.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

- I -数据库系统应用上机实验指导书实验三 表及数据操作实验目的1、 进一步学习表设计器2、 掌握表关系的建立和编辑3、 掌握在表中数据的各种操作方法4、 了解数据及数据表视图格式设置5、 掌握数据的导入、导出和链接实验内容1、 修改完善超市管理系统数据库中的表结构及属性;2、 建立和编辑表之间的关系3、 进行记录的添加、修改、删除、复制等操作;4、 进行数据的选择、删除、剪切、复制、粘贴等操作;5、 设置数据表视图的行高、列宽、字体、字号,单元格效果等格式6、 删除、冻结、隐藏列7、 数据的查找、替换、排序8、 练习数据导入、导出和链接实验步骤1 表字段属性的修改在上一次实验中创建表时,我们只简单的设计了字段的字段名称、数据类型和字段大小三个主要部分。但在字段属性中,还有很多的内容。对于不同的数据类型,“常规”标签里会显示不同的属性,常用的有:格式,输入掩码,标题,默认值,有效性规则,有效性文本,必填字段,索引,输入法模式等。各属性的功能和意义如下:格式:数据显示格式,比如:时间类型的字段,显示为长时间还是短时间,是中国习惯的“年月日”还是英美国家习惯的“月日年”等输入掩码:限制数据输入的模式标题:在窗体中显示的名称,如果为空,则显示字段名,通常用于给用户友好的界面显示默认值:在添加新记录时,系统自动赋的值有效性规则:用于限制输入的逻辑表达式,返回值为真才接受有效性文本:当违反有效性规则时系统提示给用户的信息必填字段:如果该值为真,该字段必填,不能为空索引:用于加快查找的速度和性能输入法模式:当输入该字段时是否需要输入法以及何种输入法举例 销售员表中出生日期的属性如下图:图表 1:出生日期属性设置从上面表中可以看出,销售员的出生日期字段输入格式按中国人熟悉的”年-月-日”格式,销售员的出生日期不能晚于当前日期(当天的日期),如果输入的日期比当前日期还晚,则不能输入,系统显示提示信息:“出生日期不能是将来”在表设计器的字段属性中,“查阅”功能也特别有用,比如销售单表中的“销售员ID”和销售员表中的“销售员ID”相同,在原始的输入方式中,在输入“销售员ID”时,输入的是一个个数字,很容易搞错,如左图,实际我们是要确定该销售单是哪个销售员销售的,而销售单中的“销售员ID”的值只能输入销售员表中已经存在的“销售员ID”;如果在输入“销售员ID”时能根据销售员“姓名”确定就好了,如右图,直接点击输入框右边的下拉箭头,选择“销售员”,虽然看似选择的是销售员姓名,但实际输入的是“销售员ID”。这就是“查阅”的功能,也即“参照完整性”。 图表 2:原始的数据输入方式和改进后的数据输入方式方法一、首先将“销售员ID”的标题设置为“销售员”,再将查阅属性作如下图设置即可。方法二、在数据类型的下拉列表中选择“查阅向导”,让向导自动完成对查阅属性的设置。(这种方式必须是在两表之间未建关系之前做,建立关系后不能用此种方法)图表 3:“销售员ID”字段查阅属性的设置(方法一)说明:绑定列:表示以查询结果的第几列作为返回给组合框的值用来为本字段输入内容;eg.值为1表示将查询结果的第1列即“销售员ID”的值返回作为本字段的输入内容列数:表示在组合框中表示待显示的列数,即显示的查询结果的列数;eg.值为2表示在组合框中显示查询结果的前两列。列宽:用于设置每列的显示宽度,每列之间以分号分隔;例如:0cm;2cm分别表示第一列和第二列在组合框中的显示宽度,第1列显示宽度为0cm,表示在组合框中不显示第1列的内容,也就是上图中改进后输入效果。(可以自己修改该项设置,分别设置列宽为0及1,比较两种情况下展开组合框的显示区别)如果某字段的取值只是固定的有限几个不同取值,如:性别字段的“男”、“女”,学历字段的“专科”、“本科”、“硕士”等;可以进行字段查阅属性的设置,“显示控件”设为“列表框”,“行来源类型”可以设置为“值列表”,行来源中应输入所有可能的值,并以英文的分号隔开,如:销售员的性别采用值列表,行来源里应输入: 男;女注意:这里的双引号和分号均为英文标点符号,不能用中文标点符号,系统会将中文标点符号等同于中文汉字对待,今后凡是在表达式中都只能用英文标点符号2 建立和编辑表之间的关系表之间的关系就是表的外键与其他表的主键之间的关系,建立关系的方法如下:选择“工具”“关系”或点击工具栏中的按钮,出现如图所示关系窗口。图表 4:关系窗口然后,选择“关系”“显示表”,或在关系窗口中点击鼠标右键,在弹出菜单中选择“显示表”,如图。图表 5:显示表窗口将需要建立关系的表添加进去,如:“供应商”表和“商品”表,然后用鼠标拖动联系两个表的字段中主键字段例如:“供应商”表中的“供应商ID”字段到对应的外键字段:“商品”表中的“供应商ID”字段上,当鼠标变成一个长方条时,松开鼠标,这时出现如图所示“编辑关系”对话框。图表 6:编辑关系对话框 如果要使有关系的表之间数据统一,应该设置“实施参照完整性”,(例如: 若未实施参照完整性,当在输入商品信息时,如果输入的供应商ID是一个在供应商表中不存在的值,系统不会提出反对意见,会允许输入,但若实施了参照完整性,遇到这种供应商不存在的情况,系统会给出相关提示信息,并且不允许输入)级联更新相关字段 当主表的主键值更改时,自动更新相关表中的对应数值;级联删除相关字段 当删除主表中的记录时,自动删除相关表中的有关记录(例如:当删除供应商表某一供应商时,会自动同时删除掉商品表中由此供应商提供的所有商品)。设置完后,点击“确定”按钮,完成关系的创建。按照同样的方法,我们可以依次建立其他的几个关系。如图,显示了“超市管理系统”中所有关系,建立了关系的表之间有一条连线连接起来,并指向相应字段。图表 7:表之间的关系关闭“关系”窗口,保存关系布局。当需要修改关系时,可重新打开“关系”窗口,用鼠标双击或右击需要修改关系连线进行修改或删除(在表设计过程中如果进行了“字段查阅”属性的设置,则会自动建立对应的表的关系,可以修改此关系,设置其“实施参照完整性”)。3记录的操作添加新记录 打开表,将光标置于最后一行有“*”的记录内,输入一条记录即可,也可以直接在任一条记录前点击鼠标右键,在弹出菜单中选择“新记录”,光标就自动移到输入新记录的位置。修改记录 先定位于要删除的记录,直接移到要修改的字段进行修改即可。删除记录 先定位于要删除的记录,可以在上面所述的弹出菜单中选择删除记录即可,也可以用“编辑”“删除记录”。在删除记录时有一对话框提示,以防误操作。复制记录 和上面的操作类似,需要说明的是,可以在表内、表之间以及向Word、Excel等复制,在表内复制要注意记录的唯一性,在表之间复制要注意表的字段顺序、类型、大小要一致,至少要兼容。4数据的选择、删除、剪切、复制、粘贴等操作这些操作和Word,记事本等文字操作一样,不再赘述。5数据的导入、导出和链接导入是一种将数据从其他Access文件复制Microsoft Access 中或将数据从不同格式转换并复制到 Microsoft Access 中的方法。该方法可以利用已有的数据,减少数据录入工作量。“文件”-“获取外部数据”-“导入”;导出是一种将数据和数据库对象输出到其他数据库、电子表格或文件格式中,以便其他数据库、应用程序或程序可以使用该数据或数据库对象的方法。如:导出到Word、Excel对数据进一步处理。“文件”-“导出”;导出在功能上与复制和粘贴相似。链接是一种连接到其他应用程序中的数据但不将数据导入的方法,这样在原始应用程序和 Access 文件中都可以查看并编辑这些数据。导入、导出和链接功能可以通过“文件”菜单或数据库窗口的弹出菜单中相关菜单项操作。6设置数据表视图的行高、列宽、字体、字号、单元格效果等格式,删除、冻结、隐藏列A. 这些设置可以在“格式”菜单中找到,也可以在“数据表视图”的标题栏或相应的列上的弹出菜单中找到。非精确的行高、列宽可直接通过鼠标拖动行列之间的缝隙调整。删除列就删除相应的字段B. 冻结列用于当表的字段太多,在一个显示屏显示不完,需要拖动滚动条显示时,容易记录错位,通过将关键的一列固定,来解决记录错位问题。C. 当某些列暂时不使用并影响记录定位等情况下使用隐藏列将这些列隐藏起来。相对应有“取消隐藏列”、“取消冻结列”。7 数据的查找、替换、排序、筛选当表中有成千上万条记录时,查找某条记录或将某些内容替换修改,就要使用“查找和替换”工具。可以在“编辑菜单”和相应的弹出菜单中找到该菜单,也可用工具栏中的按钮。点击“查找”后出现如下对话框,可以在指定的字段内,也可在整个表中进行查找和替换。替换时,还需在替换框中输入替换的内容。图表 8:查找替换排序是将表中的记录按选定的列以升序或降序排列,先选定排序的列,可以直接点击工具栏里的按钮,也可通过“记录”“排序”或相应的弹出菜单来排序。筛选是按给定的条件从记录中筛选出符合条件的记录,可以直接点击工具栏里的按钮,也可通过“记录”“筛选”或相应的弹出菜单来筛选。实验任务:(1-5题必做)1. 从实验中心网站“软件下载”下载超市管理数据库(其中不包括销售明细表;)2. 根据字段含义,修改完善各字段的属性: 将商品表中的警戒库存量字段默认值设为:10;A. 雇员的雇佣日期不能晚于当前日期,违反时给出相应提示:“雇佣日期晚于了当前日期”;B. 输入雇员性别字段时,直接选则男和女(值列表);C. 设置销售员的姓名字段及供应商表的公司名称字段不允许为空D. 为商品表中的供应商ID字段、类别ID字段、售货单表中的销售员ID字段及售货单明细表中的商品ID字段设置其查阅功能,使其在显示记录时,虽然各字段实际存放的是其ID,但却能显示其对应的名称(例如:)销售员姓名、类别名称、供应商公司名称、商品名称而不是ID。3. 建立各表之间的关系,并且在各关系间实施参照完整性4. 练习导入、导出功能A. 从实验中心网站“软件下载”下载excel文件“收货单.xls”,将其中的数据导入到“超市管理系统.mdb”的对应表中。B. 从实验中心网站“软件下载”下载数据库文件db1.mdb,将其中的售货单明细表导入到销售管理系统数据库中。C. 将”销售管理系统.mdb中的商品表导出到db1.mdb数据库中,导出时表名称不变。5在各表中进行数据操作:为各数据表输入相应的记录(在下载的数据库基础上,往系统中增加以自己名字命名的销售员信息,并为该销售员添加2-3条销售单记录,每个销售单记录对应3-5条销售单明细记录)6添加、删除、冻结、隐藏列A. 在供应商表的视图中,在“联系人姓名”字段后添加新的一列,并将新添加的列的列名重新命名为“特长”;B. 将新添加的“特长”字段删除C. 将销售员表中“姓名”字段冻结,比较冻结前后在显示的不同7.*练习查找、替换、排序功能A. 对销售员表中的记录按姓名排序;B. 将销售员表中城市字段中的“重庆”替换为“重庆直辖市”, C. 查找出商品表中商品名称为“*”的商品记录(自己确定具体商品名称)8.*对表中记录进行选择、剪切、复制、粘贴操作 分别选择系统中各原始表中的记录,将其进行复制并粘贴到任务3中导入的对应空备份数据表中。9.*设置数据表视图的格式将数据表视图的所有行高设为18;供应商表中的地址字段列宽设为25;所有表视图中的字体设为:华文仿宋,字号设为:小四;实验报告l 写出试验过程1-5题的具体操作步骤l 写清楚系统中各表之间的关系,及关系所代表的具体含义,以配对的形式写出关系中主键及外键所在的表及字段名称l 写出实验过程中遇到的问题及心得体会实验四 查询设计实验目的1、 掌握用向导设计查询2、 掌握用设计视图设计查询实验内容1、 用向导设计查询2、 用设计视图设计简单查询、带条件的查询、对结果排序的查询3、 设计操作查询实验步骤1 使用向导设计查询在数据库窗口的左边“对象”栏中选择“查询”,双击“使用查询向导创建查询”选项,出现如图所示向导窗口。选择相应的表和字段,按照向导的一步一步提示即可完成简单查询的创建。图表 9:查询创建向导2 使用设计视图创建查询在数据库窗口中双击“在设计视图中创建查询”,出现如图所示:显示表和设计视图两个窗口。图表 10:显示表对话框图表 11:查询设计视图选择查询所涉及的表或查询,例如“销售员”表,点击“添加”按钮添加到查询设计视图中,关闭“显示表”对话框。设计视图中上部显示表和字段列表,下部为设计网格,用于设置查询字段及选项等。在“设计视图”字段列表中双击“*”,则在设计网格的字段中出现“销售员.*”,表示选择了表中所有字段,如果只需要其中的部分字段,则在相应字段名上双击,或用鼠标将字段名拖到下面的字段中即可。下图演示了查询“销售员”表中所有销售员的姓名。图表 12:添加表的查询设计视图点击工具栏上的运行按钮即可查看查询结果,如下图。如果查询以设计完毕,可关闭设计视图或查询结果窗口,此时系统提示是否保存查询以及保存的名称。图表 13:查询结果3 带条件和排序的查询在上面设计视图中,在相应字段的“条件”中输入一个表达式,用来限制查询返回的结果集,例如:输入“赵军”,则结果集中只返回“赵军”这一条记录。表达式也可以“生成器”产生复杂的条件,也支持通配符“*”、“?”,其中“*”匹配任意多个的任意字符而“*”匹配单个任意字符。如“Like 张*”表示返回所有姓张销售员姓名,而“Like 张?”则返回所有姓张但姓名只有两个字的销售员姓名,如“张颖”、“张欢”。在上面设计视图中,在相应字段的“排序”中选择“升序”或“降序”,则结果集就按该字段升序或降序排列。4 操作查询注意:以下操作查询执行后是不可撤销的,执行前要慎重考虑。更新查询 将表中符合查询条件的记录的相应字段值批量更改为新的值,如所有商品的单价提高0.5元,先用设计视图设计好选择查询(默认),然后在“查询”菜单中或在工具栏的按钮中选择“更新查询”,然后在设计视图的“单价”字段的“更新到”框中输入“单价+0.5”,如下图,点击工具栏运行按钮即可。如果要将单价提高10%,则需在“更新到”框中输入“单价*(1+0.1)”。图表 14:更新查询删除查询 将表中符合查询条件的记录集批量删除,操作方法同更新查询类似。生成表查询 将查询结果保存在表中,可以是新表,也可以是原有的表,可以是当前数据库的表,也可以是其他数据库的表,操作方法同更新查询类似,系统会提示选择或输入表的名称,运行后,查询结果才保存到表中。追加查询 将符合查询条件的结果集追加到另一个表中,同生成表查询类似,要求被追加的表必须包含查询结果的相应字段。实验任务设计如下查询:1. 进货查询:查询出系统中哪些商品应该进货(库存量=100元的商品表,新产生的表名为:贵重商品(生成表查询)8. (选做)对商品表进行追加查询,将商品单价在50=单价100元范围内的商品信息追加到“贵重商品”表(追加查询)实验五 复杂查询实验目的1、 掌握多表查询的设计2、 熟悉参数查询和统计查询设计实验内容1、 创建多表查询2、 设计带参数的查询3、 创建统计查询实验步骤1 多表查询打开查询设计视图,添加查询所依赖的表。如:要查询“佳佳乐”公司供应的商品,则要将“供应商”表和“商品”表添加到查询设计视图。添加查询结果所需的字段,如:将“公司名称”和“商品名称”作为查询结果字段。设置查询条件,如:在“公司名称”字段的“条件”中输入“佳佳乐”,如图。点击工具栏中的运行按钮即可看到查询结果。多于两个表的查询创建方法类似。图表 15:多表查询设计2 设计带参数的查询带参数的查询实际上就是条件查询,只不过参数查询的条件更灵活,每次运行查询时由用户动态输入参数来确定查询的条件。比如,上面设计的多表查询每次运行时都是查询的“佳佳乐”公司供应的商品,而如果我们将设计网格中“公司名称”字段的条件中输入“输入要查询的公司名称:”,则每次运行该查询时,先出现如图所示参数对话框(只要在某字段的条件中输入“”中括号就表示参数查询,中括号中间的文字表示输入提示,如图22)。输入参数,点击“确定”按钮后,查询按输入值进行查询。图表 16:查询参数对话框3创建统计查询查询还可以对字段统计次数,对数值型字段汇总,查找最大、最小值,计算平均值、标准差、方差等。比如,每张销售单中有多种商品,每种商品的销售额计算方法为:数量单价(1折扣),汇总销售单中所有商品的销售额即为该销售单的总额。要查询每张销售单的总额,操作方法如下:打开查询设计视图,添加“售货单明细”表,添加“售货单ID”字段,在紧邻“售货单ID”字段位置输入表达式“总额: 单价*数量*(1-折扣)”(注:冒号前为计算字段的显示标题,冒号后为计算表达式),然后点击工具栏中的总计按钮,在设计网格中出现新的一栏选项“总计”,各字段默认值为“分组”,对应“总额”计算机字段的位置点击下拉列表,选择“总计”,如图。运行查询,每张销售单的销售总额便计算统计出来。图表 17:统计查询设计注意:在“统计查询”中,对应“总计”行,一般新建字段(表中原本不存在而在查询中创建的字段:在本例中为“总额”字段)为总计(具体选项根据查询要求选择),其余字段为分组。实验任务1 某供应商提供商品的信息查询:查询出某供应商(通过参数查询)提供的所有商品的商品名称、类别名称、单价、库存量等信息2 销售单的销售额统计:按姓名查询某个销售员所销售的所有售货单并统计出每个售货单的总金额(在同一个查询中完成;提示:销售员姓名、销售单ID为分组字段,新产生一个“总额”字段为总计字段)。3 销售员月销售额统计:统计出1998年所有销售员各月的销售总额(具体年份可通过参数传递或条件输入);4 按商品月销售额统计:查出每类商品1998年每个月的销售额,包括商品名称、销售月份、销售额;5 交叉查询:根据实验任务中3中的查询结果,建立一交叉查询,按月份对各销售员销售额进行对比及汇总,以方便同时按月份分析某月不同销售员业绩及按销售员分析某销售员不同月份的销售业绩。试验报告:1. 分析作业1-5的具体实现步骤(包括分析从“显示表”中选用哪些表、从选择表中选用哪些字段及创建查询的整个过程),将各查询的设计试图截图附在实验报告中。2. 写出试验过程中遇到的问题及你觉得的难点3. 写出实验过程中的心得体会实验六 SQL查询语句练习一、实验目的1. 掌握数据库操作语句的使用2. 掌握查询分析器的使用方法。3. 掌握SELECT语句在单表查询中的应用。4. 掌握SELECT语句在多表查询中的应用。5. 掌握SELECT语句在嵌套查询中的应用。二、实验内容直接编写SQL语句查询前面设计的查询是通过向导或设计视图等图形界面方式创建的,我们还不知道其真正的SQL语句是什么。其实,我们可以通过鼠标点击设计视图的空白区域,在弹出菜单中选择“SQL视图”或直接点击工具栏左上角的中的“SQL视图”,即可查看查询背后的SQL语句。实际上,我们可以修改已经创建好的查询,甚至在空白的设计视图中徒手编写SQL语句创建查询。不过,这需要对SQL比较熟悉才行,而且要注意的是Access是一个具体的软件环境,并不一定支持所有SQL语句,使用教材上的示例SQL语句时要结合Access的在线帮助。1Select查询语句SQL语言提供了Select语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。其一般格式为:SELECT select_list INTO new_table FROM table_source WHERE search_condition GROUP BY group_by_expression HAVING search_condition ORDER BY order_expression ASC | DESC Select语句的功能是:根据Where子句的条件表达式,从From子句指定的基本表的全部元组中找出满足条件的部分元组,再按Select子句中的目标列表达式,挑选出这些元组中的某几个特定的属性列值形成结果表。如果有Group by子句,则表示要将查询结果按照Group by子句后所表示的属性列的不同值进行某种方式的汇总,具体的汇总方式有求和、计数、求最大值、求最小值、求平均值等。如果有Order by子句,则还要将查询结果按Order by子句后的的值的升序(ASC)或降序(DESC)进行排序。1)单表查询单表查询是指仅设计一个表的查询。很多情况下,用户只对表中的一部分属性列感兴趣。可以通过在select字句的目标列表达式中指定要查询的属性。A选择某个表中的若干属性列(投影)即从数据库的一个表中挑选出某几个特定的属性列值。例2-1 查询所有供应商的公司名称、联系人姓名、联系人职务、地址和电话号码。Select 公司名称, 联系人姓名, 联系人职务, 地址,电话From 供应商注意:Select子句后面的中各个属性列的先后顺序可以和其在表中的顺序不一致。例如,可以调整本例中Select后面的属性列的顺序,改为先列出公司名称和电话号码,再列出联系人姓名和客户地址,调整后的Select语句为:Select 公司名称, 地址, 联系人姓名, 联系人职务,电话 From 供应商例2-2 查询所有产品的详细记录。Select 商品ID,商品名称,供应商id,类别id,单位数量,单价,库存量,警戒库存量 From 商品本查询列出了产品表的所有属性列值,而且属性列的顺序与其在表中的顺序完全一致,因此在Select子句中可以简单地用(*)代替全部的属性列名。Select * From 商品注意:如果列的顺序与其在表中的顺序不完全一直,就不可以用这种方法。例2-3 查询被客户订购了的商品ID。Select 商品IDFrom 售货单明细注意:在上面的查询结果中包含了许多重复的行。这是因为有许多产品被重复订购了,而Select子句的缺省含义是Select all,即保留重复行,这样就出现了上面的查询结果。如希望去掉重复的行,需要在Select子句中使用Distinct短语,修改后的语句为:Select Distinct 商品ID From售货单明细B选择某个表中符合适当条件的记录(选择)在实际的查询过程中,有时我们不是简单地从数据库的某个表中挑选一些列,而是需要挑选出符合自己规定的某个(或某些)条件的部分记录,这时就需要在Select语句中加入条件子句(Where子句)。例2-4 查询所有“北京”和“上海”的客户的公司名称、联系人姓名、联系人头衔和电话号码。Select 公司名称, 联系人姓名, 联系人职务, 城市,电话 From 供应商 Where 城市= 北京 or 城市=上海本例中使用了两个查询条件:“城市= 北京 or City=上海”,并用“or”运算符将其连接,表示希望查询北京客户或上海客户的信息。Where子句中常用的查询条件及运算符(或谓词)有很多,具体如下:查询条件运算符(或谓词)比较=,=,=,确定范围BETWEEN AND,NOT BETWEEN AND确定集合IN,NOT IN字符匹配LIKE,NOT LIKE空值IS NULL,IS NOT NULL多重条件AND,OR,NOT下面我们再通过一些例子来说明一下这些常用的查询条件及运算符(或谓词)的用法。例2-5 查询单价“不”介于30到50之间的产品的产品名称及其单价。Select 商品名称, 单价From 商品Where 单价 NOT between 30 and 50运算符“betweenand”和“not betweenand”可以用来限定某个值的范围,其中between后面是范围的下限,而and后面是范围的上限。例2-6 查询所有“不”位于北京、上海、重庆的客户的公司名称、联系人姓名、联系人头衔和电话号码等数据。Select 公司名称, 联系人姓名, 联系人职务,电话From 供应商Where 城市 not in (北京,上海,重庆)有时候我们希望在表中查找字符型属性列值具有某种规律的记录,这时就需要用谓词LIKE进行字符匹配,格式如下:not LIKE 匹配串 escape 换码字符其中,匹配串是包含通配符“*”和“?”的特殊字符串。匹配串中的普通字符只和属性列值中完全相同的字符匹配,而通配符“*”可以和属性列值中的0个或多个任意字符相配,“?”则可以与属性列值中的1个任意字符相匹配。例2-7 查询供应商表中所有(不)以林开头的联系人的姓名与头衔。Select 公司名称,联系人姓名, 联系人职务From 供应商Where 联系人姓名 not like 林*例2-8 查询所有没有填写传真的供应商的记录。Select *From 供应商Where 传真 is null如果要查询所有输入了传真的供应商记录,只需将where子句改为:Where 传真 is not null2). 多表查询由于存放在数据库中的各个表不是孤立的,而是相互联系的,因此,有时我们会对多个表的数据同时进行查询以组成一个综合性的结果集。A简单条件连接查询简单条件连接查询是指仅涉及一个连接条件的连接查询。例2-9查询所有产品的名称、类别名称和库存量等数据。Select 商品.商品名称,类别.类别名称,商品.库存量From 商品, 类别Where 商品.类别ID=类别.类别ID在本例的select子句和where子句中都用到了.这种格式来表示某一列属于哪个表,以消除属性列的二义性。但是如果某一列名(如商品名称)在参加连接的各表中是唯一的话,该列名前的表名是可以省略的。在例2-10中,商品名称和库存量两个字段都只在表商品中唯一存在,类别名称字段只在类别表中存在,所以在select语句中,此几个字段前的表名都可以省略掉,如例2-11。例2-10Select 商品名称,类别名称,库存量From 商品, 类别Where 商品.类别ID=类别.类别ID还要注意的是,在进行表的连接是必须在where子句中指明条件,否则就是广义迪卡尔积,其连接结果一般是无意义的。B复合条件连接查询复合条件连接查询是指具有多个条件的连接查询。例2-11查询所有单价介于20和50之间的产品的名称、类别名称、单价和库存量等数据。Select 商品名称, 类别名称, 单价, 库存量From 商品, 类别Where 商品.类别ID=类别.类别ID and 商品.单价 between 20 and 503)嵌套查询嵌套查询是指将一个SelectFromWhere查询块嵌套在另一个查询块的Where或Having短语的条件中的查询。A带有比较运算符的子查询当子查询返回的结果是单值时,可以使用比较运算符连接父查询和子查询。例2-12.1查询与供应商“为全”有相同城市的所有供应商的公司名称及电话Select 公司名称,电话From 供应商Where 城市=(select 城市 From 供应商 Where 公司名称=为全)例2-12.2查询与商品ID为“1”的商品类别相同,单价却不同的产品的商品ID、商品名称及其单价。Select 商品ID, 商品名称, 单价From 商品Where 单价 (Select 单价 From 商品 Where 商品ID=1) and 类别ID= (Select 类别ID From 商品 Where 商品ID=1)B带有IN谓词的子查询当子查询的查询结果包含多个值时,经常会使用谓词IN来连接子查询和父查询。例2-13查询购买了单价比“1”号产品大的那些产品所在的销售单ID。Select distinct 售货单IDFrom 售货单明细Where 商品ID in (Select 商品ID From 商品 Where 单价 (Select 单价 From 商品 Where 商品ID=1) C带有ANY或ALL谓词的子查询当子查询的查询结果包含多个值时,光用谓词“IN”来连接子查询和父查询是不够的,有时会用到前置了比较运算符的谓词“ANY”或“ALL”。其中,“ANY”代表子查询结果中的某个值,“ALL”代表子查询结果中的所有值。例2-14查询单价价格大于所有 “3”号类产品的产品名称及其价格。Select 商品名称,单价From 商品Where 单价all (Select 单价 From 商品 Where 类别ID=3)实验任务: (第一题必做,做完还有时间可以完成后面的题目)1. 将实验步骤中的所有例题在SQL视图中执行2. 在销售员表中增加一个联系人为自己名字的供应商记录,其他字段自己随便设置。3. 查询出姓名为“金正鹏”的销售员的销售员ID、姓名、职务、雇用日期、家庭电话、地址4. 查询出不姓张的所有销售员的姓名、职务、雇用日期5. 查询出库存量超过警戒库存量但又小于50的所有商品的商品名称、库存量、警戒库存量6. 查询出姓张或姓王的所有销售员的信息7. 查询出某天被卖出了的所有商品的详细信息(去掉重复行)8. 查询出所有没留传真号码的供应商公司名称、联系人姓名、地址及电话9. 查询出某种具体商品所属的类别名称10. 查询出库存量10的所有商品信息及其对应的供应商公司名称实验六 窗体实验目的1、 熟悉使用向导创建窗体2、 掌握使用设计视图创建窗体3、 熟悉控件的使用实验内容1、 创建简单的数据窗体2、 创建高级窗体3、 使用设计视图创建数据窗体、控制窗体等4、 练习控件的使用实验步骤窗体是数据库系统与用户的界面,通常用于显示各种提示、出错、警告信息;用于编辑数据表中的数据,可以利用窗体对数据库中的数据进行输入、修改、删除等操作;通过在窗体中建立命令按钮或其他控件,设置相应事件,可以控制应用程序流程等。1 用向导创建窗体在“数据库”窗口中选择“窗体”对象,用鼠标双击“使用向导创建窗体”,出现如图所示窗体向导。先选择窗体所依赖的表或查询,即窗体的数据源。然后再从“可用字段”中选择将要在窗体中处理的字段。图 1 窗体向导点击“下一步”,确定窗体使用的布局,有纵栏表、表格、数据表、两端对齐、数据透视表、数据透视图等六种选择。再下一步是选择窗体所用的样式,最后设置窗体的标题并决定是打开还是修改窗体。说明:由于我们在设计表时,为了表设计的科学性,有些字段以各种数字、代号作为字段值,而用查询来完整提取必须信息,因此,通常窗体是以查询作为数据源,或者从多个建立关系的表中选出必须的字段用于窗体处理。2 创建主/子式窗体或链接窗体主/子式窗体包括两个以上的表或查询,因此在创建主/子式窗体时必须选择两个以上表或查询中的字段,并且所选择的表或查询之间必须先建立了关系。操作方法:启动窗体向导,选择两个以上建立了关系的表或查询中的字段,然后向导会根据所选的数据源即它们之间建立的关系确定窗体的类别(带有子窗体的窗体、链接窗体),最后设置窗体的布局和样式、标题等。主/子式窗体如下图,“类别”主窗体中嵌套了“商品”子窗体,主子窗体的下面一行为记录导航工具,用于记录定位。3 使用设计视图创建窗体双击“在设计视图创建窗体”,出现如图所示窗体设计视图。左边“工具箱”中列出了常用的控件,右边给出了窗体的主体和标尺。图 2 窗体设计视图根据窗体的类型,如果窗体不包含数据(如控制面板或用户自定义对话框),则不需要数据源,否则应根据需要为窗体设置数据源,窗体的记录源可以来自单个表的数据,也可以是先建立一个查询。可以从“窗体”“属性”或弹出菜单中打开“属性对话框”设置记录源,如图。图 3 设置窗体数据源属性 默认情况下,窗体设计部分只显示了窗体的主体部分,可以通过“视图”“页面页眉/页脚”和“窗体页眉/页脚”或弹出菜单方式添加相应部分,如图为完整的窗体设计视图。说明:使用设计视图设计窗体是对向导方式的一种补充,通常用向导创建窗体,向导可以完成大多数窗体设计的需要,然后再用设计视图进行局部修改。纯粹用设计视图创建窗体的方法一般用于创建简单的控制窗体,既要掌握控件的用途,还要编写底层代码,此方法适合于对Access非常精通的人员。图 4 完整的窗体设计视图 4窗体中控件的操作现在可以选择“工具箱”中的控件进行窗体设计了。窗体或报表中的所有信息都包含在控件中。在窗体中,信息包含在控件的方式与其在报表中的包含方式相同。控件是窗体或报表中用于显示数据、执行操作或装饰窗体和报表的对象。常用的控件有:标签、文本框、组合框,列表框、选项组、选项按钮、复选框等。通过在窗体中增加各种控件,可以显示数据库系统中已有表或视图中的数据;可以显示各种提示、出错、警告信息;可用于编辑数据表中的数据,利用窗体对数据库中的数据进行输入、修改、删除等操作;可以通过在窗体中建立命令按钮或其他控件,设置相应事件,控制应用程序流程等。可以在窗体或报表中使用文本框显示数据,在窗体上使用命令按钮打开另一个窗体或报表,或使用线条或矩形来分隔与组织控件以增强它们的可读性。使用控件显示信息时,需要为控件设置其“控件来源”属性,将控件与窗体的记录源中的字段联系起来。控件的大小和位置:当鼠标点击设计视图中的控件时,控件周围加上了几个黑色的小方块。其中左上角比较大的一个黑方块表示整个控件,用鼠标可以拖动整个控件,其他几个方块用于调整控件的大小。控件的选择:单个控件直接用鼠标选择或用Tab键选择,多个控件可按住Shift键,再用鼠标一个一个选中。控件的属性:直接用右键点击某个控件,在弹出菜单中选择“属性”菜单,出现与前面设置窗体属性窗口类似的控件属性窗口,实际上窗体、所有控件都是这个属性窗口,只是不同的对象,属性值不一样而已。可以在属性窗口中设置“格式”、“数据”、“事件”、“其他”等类属性。有些属性是鼠标无法设置的,只能用属性窗口设置,如控件的精确位置和大小等。说明:使用设计视图的方法创建窗体类似于当前很多可视化开发工具,但又比大多数可视化开发工具简单,当添加一个控件到窗体时,通常有向导一步一步引导我们来设置控件的属性。在控件的属性窗口中,“格式”主要用于设置控件的位置、大小、颜色等效果;“数据”主要用于设置控件的数据来源(如:对应的表和字段),以及输入掩码、有效性、默认值等;“事件”主要用于设置控件在发生鼠标或按键操作、焦点的获得与失去、数据的变化等事件时所执行的表达式、宏或程序代码(后面的实验将有所涉及)。详细的窗体设计就不在赘述,读者可尝试使用不同控件并改变属性的值,用工具栏左上角的中“窗体视图”来检查效果。实验任务1. 用向导和设计视图配合创建商品窗体,在窗体中实现对基本数据进行添加、删除、修改、浏览功能(通过添加命令按钮完成)(记录源为系统中已有的表)2. 创建进货窗体及存货窗体(相应的查询在前面 “简单查询”试验中已经建立)(记录源为系统中已有的查询)3. 使用向导创建销售员/销售单的主/子窗体,销售员为主窗体,销售单为子窗体。注意:(在用向导创建主/子窗体或链接窗体时,在选定的字段中必须包括多个(两个或两个以上)表或查询中的字段,即分别选择两个表或查询,再将其包括的字段中需要的字段添加到选定的字段中)4. 使用“设计视图创建窗体”创建类别/商品的链接窗体要求:主窗体中通过一“下拉列表框”来选择类别的名称,通过一命令按钮来打开链接窗体,在链接窗体中显示主窗体中所选类别的所有商品。如下图:5. 创建销售管理窗体,包括“销售单的销售额统计”窗体、“销售员月销售额统计”窗体、“商品月销售额统计”窗体(相应的查询在前面“复杂查询”试验中已经建立)。并另建一销售管理窗体,将建好的各销售窗体在该窗体中汇集。(如下图所示)6. 创建各个销售员1998年各月的销售总额的图表窗体。(如下图所示为1998年1-3月各销售员的月销售额)7. (选做)创建选项卡窗体方法创建一选项卡窗体,包括3个页面,第一个选项页名为:“供应商基本信息”,含有供应商编号、公司名称、联系人姓名、联系人职位 ;第二个选项页名为其它信息,包括供应商除第一个选项页中之外的其他信息;第三个选项页为“商品信息”,中间包含一子窗体,用以显示第一个选项页中所显示的供应商提供的所有商品信息。8.(选做)创建一个条件面板窗体,窗体中有两个文本框,标签分别为姓名及月份,并在窗体中添加一个命令按钮,名为:“显示指定销售员在指定年各月销售额”,点击该命令按钮,运行名为“显示指定销售员在指定年各月销售额”的查询,该查询中包含:销售员姓名、年、月、销售额字段。(参考下面系列图完成)实验报告:1. 写出整个实验的操作步骤2. 写出实验过程中遇到的问题及你觉得的难点3. 写出实验过程中的心得体会实验七 报表实验目的1、 掌握用向导创建报表2、 掌握用设计视图创建报表实验内容1、 练习简单报表的设计2、 练习高级报表的设计3、 练习标签设计实验步骤报表是管理系统中有效数据或最终结果的载体,是以打印格式展示数据的一种有效方式。打印的报表通常用于存档、上报给领导或管理部门作为决策的依据。因此报表设计的好坏至关重要。报表创建与窗体创建非常相似,通常用向导创建,然后再设计视图进行修改,但窗体一般用于数据操作和程序控制,而报表用于数据输出,包括分组、计算、汇总统计以及图表显示等,通常是静态的。1 用向导创建报表1) 在“数据库”窗口中,单击“对象”下的“报表”。2) 单击“数据库”窗口工具栏上的“新建”按钮。 3) 在“新建报表”对话框中,单击要用的向导。对话框左侧将显示所选向导的说明。 4) 单击包含报表所需数据的表或查询。 注释如果在第 3 步中单击了“报表向导”,则不必执行这一步骤,可以在向导中指定窗体的记录源。5) 单击“确定”。 6) 按照向导的提示进行操作。 如果对生成的报表不十分满意,可以在“设计”视图中对其进行修改。2 用设计视图创建报表在“数据库”窗口中,双击“使用设计视图创建报表”,出现如图所示报表设计视图和工具箱。图 5 报表设计视图和工具箱报表通常用于纸质输出,因此,除了使用系统默认的纸张和页面布局外,当系统的默认不能满足需要时,还要改变当前的纸张和页面布局。这和Word的设置类似,纸张常用A4、B5,页面一般包括上下左右边距、页眉、页脚和主体部分。报表还包括列数、列尺寸、列布局等以及整个报表的页眉、页脚。虽然报表设计视图和窗体设计视图所用的工具箱一样,但报表设计视图通常使用标签、文本框以及用于美化格式的直线、矩形等控件,而几乎不用窗体所特有的命令按钮、组合框、复选框等控件。控件的使用也和窗体设计视图类似,通过鼠标调整控件位置、大小,通过属性窗口设置“格式”、“数据”和“其他”属性,由于报表是静态的,所以无法设置控件的“事件”属性。设计报表时,也应先设置报表的记录源(报表属性中设置);3 排序与分组 在设计打印报表的时候,常常把记录分组(如:按供应商对商品分组),并在每个组中包含一个组页眉和组页脚。在每组的页眉或页脚处可包含一个总和、平均值等计算字段,为每个组显示概要和汇总信息,提高报表的可读性。 在报表中对记录分组,可单击“排序与分组”按钮或选择菜单项“视图”-“排序与分组”,出现图“排序与分组”对话框。 在对话框中从“字段/表达式”的下拉式列表中选择能在表中分组的字段,确定排序方式,并选择是否显示组页眉及组页脚。4高级报表设计1).计算总计和其他聚合值A. 打开报表“设计”视图。 B. 单击“工具箱”上的“文本框”工具。 C. 执行下列操作之一: l 若要计算一组记录的总计值或平均值,将文本框添加到组页眉或组页脚中。 l 若要计算报表中的所有记录的总计或平均值,将文本框添加到报表的页眉或页脚中。 D. 选中文本框,然后单击工具栏上的“属性”。 E. 在“控件来源”属性框中,键入使用 Sum 函数计算总计值或使用 Avg 函数计算平均值的表达式,或者可单击“生成”按钮使用“表达式生成器” 创建表达式,如:=Sum(数量 * 单价)注意:步骤E中汇总字段不能放在窗体的页眉及页脚中,可以放在主体、分组及报表页眉页脚

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论