《access数据库基础及应用教程-第5章 数据表》由会员分享,可在线阅读,更多相关《access数据库基础及应用教程-第5章 数据表(123页珍藏版)》请在金锄头文库上搜索。
1、Access数据库基础及应用,第5章 数据表教学知识点 表的创建 表的维护 表中数据的操作 表间关系 数据的导入与导出,Access数据库基础及应用,数据表(表)是Access数据库最重要最基础的对象。数据库只是一个框架,数据表才是其实质内容。一个数据库中可能包含若干个数据表。如“教学管理系统”中,“教学管理”数据库包含分别围绕特定主题的6个数据表:“教师”表、“课程”表、“成绩”表、“学生”表、“班级”表和“授课”表,用来管理教学过程中学生、教师、课程等信息。6个各自独立的数据表通过建立关系被联接起来。,Access数据库基础及应用,5.1 创建数据表完成数据库设计后,就可以开发Access
2、数据库应用系统了。开发应用系统的第一步是建立Access数据库,第二步工作是在该数据库中创建表对象。Access允许一个数据库中包含多个表。表用于存储和管理与特定主题有关的数据,是Access数据库的对象之一,其他数据库对象,如查询、窗体、报表等都以表对象为基础。,Access数据库基础及应用,5.1 创建数据表 在用户看来,与特定主题有关的数据集合表是一张二维表,其中的每一列称为表的字段,每一行称为表的记录。如“教师”表等。 表对象由表结构和表数据两部分组成,其中表结构指构成表的框架,具体说就是指表中所包含的每个字段的字段名、字段的数据类型和字段长度等属性,表数据就是指表中的记录。,Acce
3、ss数据库基础及应用,5.1 创建数据表 5.1.1 建表原则为减少数据输入错误,并能使数据库高效工作,表设计应按照一定原则对信息进行分类,同时为确保表结构设计的合理性,通常还要对表进行规范化设计,以消除表中存在的冗余,保证一个表只围绕一个主题,并使表容易维护。,Access数据库基础及应用,1. 信息分类原则(1) 每个表应该只包含关于一个主题的信息当每个表只包含关于一个主题的信息时,就可以独立于其他主题来维护该主题的信息。例如,应将教师基本信息保存在“教师”表中。如果将这些基本息保存在“授课”表中,则在删除某教师的授课信息,就会将其基本信息一同删除。 (2) 表中不应包含重复信息,表间也不
4、应有重复信息每条信息只保存在一个表中,需要时只在一处进行更新,效率更高。例如,每个学生的姓名、性别等信息,只在“学生”表中保存,而“成绩”中不再保存这些信息。,Access数据库基础及应用,2. 规范化设计表的规范化形式按规范化程度从宽松到严格,分别为第一范式、第二范式、第三范式等。 (1) 第一范式第一范式(1NF)是指在关系中每个属性都是不可再分的数据项。1NF是关系数据库应满足的最基本的条件,一个不满足1NF的数据库不能称为关系型数据库。,Access数据库基础及应用,表5-1中,“联系电话”可以拆分,该关系不满足1NF,现将“固定电话”和“移动电话”均作为表中字段,使每个数据项不可拆分
5、,就满足1NF了。,表5-1,表5-2满足1NF的关系,Access数据库基础及应用,(2) 第二范式在一个满足lNF的关系中,如果所有非主属性都完全依赖于主属性,则称这个关系满足第二范式(2NF)。 表5-3中的主关键字是(学号、课程编号),该关系满足1NF,但应用中会出现以下问题:,表5-3,Access数据库基础及应用,原因分析:“学号“和“课程编号“是主属性, “分数“和“学分“是非主属性,其中“分数“完全依赖于主属性“学号“和“课程编号“,而“学分“仅依赖于“课程编号“,即对主属性属于部分依赖,可见该关系不满足2NF。要避免上述问题,关系模式必须满足2NF,方法是:将此关系模式进行分
6、解,生成两个关系模式:课程(课程编号,课程名称,课程类别,学分)(根据需要,增加了“课程类别”属性)、成绩(学号,课程编号,分数),Access数据库基础及应用,满足2NF的关系中,如果其所有非主属性都不传递依赖于主属性,则称该关系满足第三范式(3NF)。表5-4主关键字是“学号”,满足2NF。但“班级编号”,“班级名称”,“班主任”重复存储,存在数据冗余、插入异常、删除异常、更新异常等问题。,表5-4,Access数据库基础及应用,原因分析:非主属性“班级名称”、“班主任”依赖于“班级编号”,而“班级编号”又依赖于“学号”,存在传递依赖现象,即不满足3NF。解决问题的方法:使关系模式满足3N
7、F。将该关系模式进行分解(根据需要增加若干属性):学生(学号,姓名,性别,出生日期,政治面貌,班级编号,照片)班级(班级编号,班级名称,入学时间,专业,培养层次,人数,班主任)。,Access数据库基础及应用,一个好的关系模式,应该保持尽可能少的数据冗余,而且不存在插入异常、删除异常和更新异常等问题。规范化是为了将不好的关系模式转化为好的关系模式,转化的方法是:将关系模式分解成两个或两个以上的关系模式。 在设计表时,应该保证数据库中的所有表都能满足2NF,并力求绝大多数表满足3NF 。,Access数据库基础及应用,5.1.2 定义表结构创建表可分为两步完成:创建表结构;向表中输入数据。创建表
8、结构时,首先要定义表结构,即定义表中各字段的字段名、字段类型、字段大小和字段的其它属性等。然后使用“设计器”或“表向导”建立表结构。表结构建立后,就可以向表中输入数据了。1. 定义字段名每个字段都应具有唯一的字段名,以标识表中的列。Access要求字段名符合以下规则:(1) 字段名最长达64个字符(包括空格)。(2) 字段名可采用字母、汉字、数字、空格和其他字符。,Access数据库基础及应用,(3) 字段名不能以空格开头,不能包含点(.)、感叹号(!)、方括号( ),先导空格以及不可打印字符(如回车符等)。(4) 不能使用ASCII值为032的字符。2. 定义字段类型一个数据表中同一列的数据
9、必须具有共同的数据特征,称其为字段的数据类型(简称为字段类型)。Access中支持10种字段类型:文本型、备注型、数字型、日期/时间型、货币型、自动编号型、是/否(逻辑)型、OLE对象型、超级链接型以及查阅向导型。,Access数据库基础及应用,表5-5Access中的数据类型,Access数据库基础及应用,表5-6“数字”数据类型字段的大小属性 在定义字段类型时应考虑以下几个方面:(1) 字段中允许什么类型的值 如不能在“数字”类型的字段中保存文本数据。,Access数据库基础及应用,(2) 用多少存储空间来保存字段中的值 如当文本数据的长度超过了255个字符,则应该考虑使用“备注”数据类型
10、。 (3) 对字段中的值将执行什么类型的运算 如Access能够对“数字”类型或“货币”类型字段中的值求和,但不能对“文本”类型的值或“OLE对象”类型的值进行求和操作。 (4) 是否需要排序或索引字段 例如,“OLE对象”类型的字段不能排序或索引。 (5) 是否需要在查询或报表中使用字段对记录进行分组 。如“OLE对象”类型的字段不能用于记录分组。,Access数据库基础及应用,(6) 如何排序字段中的值在“文本”类型的字段中,将数字以字符串的形式进行排序(如:1、10、100、2、20、200等),而不是作为数值来排序。“数字”类型或“货币”类型的字段按数值排序。如果将日期数据输入到“文本
11、”类型的字段中,将不能正确排序。使用“日期/时间”类型的字段则可确保正确地对日期排序。,Access数据库基础及应用,3. 定义字段大小Access中,表中一列所能容纳的字符个数(即列宽)被称为字段大小,采用字节数表示。当字段类型为文本或数字时,其“字段大小”才可设置。文本类型字段的大小可设置值为1255; 数字类型字段的大小可设置值如表5-7所示。,表5-7,Access数据库基础及应用,设置“字段大小”时,应注意:(1) 合理的情况下,应该尽可能小地设置字段大小, 以便数据的处理速度更快,需要的内存更少。(2) 当一个字段已存有数据时,将字段大小的设置值 由大变小,可能会造成数据丢失。例如
12、,如果把某一 文本类型字段的字段大小从255变成50,那么超过50个 字符的数据会丢失。(3) 如果要对含有14位小数位的数据字段执行大量 运算,可以使用货币数据类型,以提高运算速度。因 为单精度和双精度数据类型字段要求浮点运算,货币 数据类型字段则使用较快的定点运算。,Access数据库基础及应用,提示: Access中,一个汉字和一个西文字符一样,均占一个字符。 定义表结构时,每个字段的字段名、字段类型以及文本类型和数字类型字段的字段大小必须要定义。 如果某字段设置为自动编号数据类型,在向表中添加一条新纪录时,Access会为其指定一个唯一的顺序号(每次加1)或随机数。该字段类型占4个字节
13、。自动编号数据类型一旦被确定,就会永久地与记录链接,该值在表中为唯一存在,不会随着增删记录而改变,同时也不能人工干预。,Access数据库基础及应用,5.1.3建立表结构Access中建立表结构的方法主要有三种:使用“表向导”;使用“数据表视图”;使用“设计视图”。1.使用“表向导”创建表利用表向导建立表结构只需按系统提示操作即可。例5-1 利用“表向导”创建“教学管理”数据库中的“课程”表(参照教材表5-15)。 1) 打开“教学管理”数据库窗口。选择“表”对象,双击“使用向导创建表”,或者单击“新建”按钮,在“新建表”对话框中双击“表向导”,如图5-1所示。,Access数据库基础及应用,
14、2) 打开“表向导”对话框,如图5-2。单击“商务”,单击“示例表” 中 的“学生和课程”,在“示例字段”中选择所需字段。如图5-2所示。,图5-1,Access数据库基础及应用,图5-2,Access数据库基础及应用,3) 更改字段名称。在“新表中的字段”中,选择需命名的字段,单击“重命名字段”按钮,打开“重命名字段”对话框更改字段名称后, “确定”如图5-3所示。,图5-3,Access数据库基础及应用,4) 单击“下一步”,在出现对话框的“请指定表的名称”文本框中输入表名称,选择设置主键的单选按钮,如图5-4所示。,图5-4,Access数据库基础及应用,5) 单击“下一步”,在“请确定
15、哪个字段将拥有唯一标识每个记录都是唯一的数据”文本框中输入“课程编号”,设定“课程编号” 为“主键” 。如图5-5。6) 单击“下一步”,按照提示操作,最后单击“完成”.,图5-5,Access数据库基础及应用,2. 通过“数据表视图”创建表例5-2 通过“输入数据”创建“教学管理”系统中的“授课”表(参照教材表5-16)。 1) 在“教学管理”数据库窗口选择“表”对象,打开“数据表视图”窗口,如图5-7所示。,图5-7,Access数据库基础及应用,2) 修改字段名。通过双击字段名来重新命名字段。生成所有的字段名后关闭窗体。字段类型默认为“文本”型,字段大小自动设置为50。,Access数据
16、库基础及应用,3) 在另存为对话框中输入表名“授课”,单击“确定”,出现提示定义“主键”对话框。如图5-8。4) 单击“否”,不定义主键,建表完成;单击“是”,Access自行添加一个名为“编号”、数据类型为“自动编号”、字段大小为“长整型”的字段作为该表的主键,即定义“自动编号主键”,建表完成。这里选择不定义主键。,图5-8,Access数据库基础及应用,说明: 可以直接在“数据表视图”中输入数据,字段名依次为“字段1”、“字段2”等,字段列数由数据列数决定。各字段的数据类型由Access依据所输入的数据进行判断,如输入字符时,被认为是“文本”类型,输入数值时,被认为是“数字”型。各字段的大小则按默认值设定,如“文本”大小为50个字符,整数为“长整型”等。同样也可定义“自动编号主键”。 不论是在“数据表视图”通过重命名字段创建的表结构,还是通过输入数据创建的表结构,通常都要在“设计视图”中对其进行修改才能满足实际需要。,Access数据库基础及应用,