《第四章表的操作华农数据库课PPT课件》由会员分享,可在线阅读,更多相关《第四章表的操作华农数据库课PPT课件(31页珍藏版)》请在金锄头文库上搜索。
1、教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系第四章第四章 表的操作表的操作 关关系系数数据据库库是是基基于于关关系系模模型型设设计计出出来来的的若若干干张张二二维维数数据据表表的的集集合合。表表也也称称关关系系,是是关关系系数数据据库库用用来来存存储储和和管管理理数数据据的的对对象象,是是整整个个关关系系数数据据库库系系统统的基础,也是数据库中其它对象的操作依据。的基础,也是数据库中其它对象的操作依据。 本本章章介介绍绍表表的的结结构构、创创建建、数数据据维维护护等等对对表表的的常规性操作常规性操作。2021/7/231教学进度教学进度教学进度教学进度计算机科学与工程系
2、计算机科学与工程系4.1 表的构成与创建表的构成与创建 在在Access中设计表主要是对下列内容进行定义与规划:中设计表主要是对下列内容进行定义与规划: (1) 表的名字;表的名字; (2) 每每个个字字段段的的属属性性,包包括括字字段段名名、字字段段类类型型、字字段段长长度和约束条件等;度和约束条件等; (3) 确定索引字段;确定索引字段; (4) 确定与其它表的关联和多字段约束;确定与其它表的关联和多字段约束; (5) 向表中输入数据。向表中输入数据。 以以上上设设计计中中前前四四个个步步骤骤称称为为表表结结构构的的设设计计,第第五五个个步步骤为表的数据操作,包括数据的插入、删除和修改等。
3、骤为表的数据操作,包括数据的插入、删除和修改等。 2021/7/232教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系表的构成:表的构成: 表表4.2给给出出一一张张学学生生信信息息的的二二维维表表,其其中中每每行行代代表表一一个个学学生生的的信信息息,对对每每个个学学生生描描述述其其学学号号、姓姓名名、性性别别、出出生生年年月月、籍籍贯贯和和所所在在班班级级编编号号等等方方面面的的信信息息。表表中中每每一一列列是是相相同同类类型型的的数数据据,如如所所有有学学生生的的学学号号、所有学生的姓名等。所有学生的姓名等。学号学号姓名姓名性别性别出生年月出生年月籍贯籍贯班级编号班级
4、编号050101张三秋张三秋 男男 1986-6-9广东广东111 050102王五王五 男男 1986-8-8江苏江苏110 050103李玉李玉 女女 1985-9-12湖南湖南115 050104黄国度黄国度 男男 1986-8-13广东广东120 050105杜全文杜全文 男男 1987-1-15湖北湖北111050106刘德华刘德华 男男 1987-5-8广东广东111050107陆珊玉陆珊玉 女女 1986-8-9广东广东112050108陈晓丽陈晓丽 女女 1985-8-14广东广东115 050109王青王青 男男 1986-1-25广东广东120.2021/7/233教学进度
5、教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 确确定定表表的的结结构构还还需需要要确确定定表表中中各各字字段段的的约约束束条条件件、表表的索引以及与其它表之间的关联。的索引以及与其它表之间的关联。 (1) 约约束束条条件件:数数据据表表的的约约束束条条件件是是对对数数据据库库数数据据的的约约定,以保证数据的一致性。定,以保证数据的一致性。 例例如如,一一般般姓姓名名不不能能为为空空,学学生生的的学学号号是是唯唯一一的的,即即两两个学生不能取相同学号等等。个学生不能取相同学号等等。 从作用范围来看,约束主要分为列级约束和表级约束。从作用范围来看,约束主要分为列级约束和表级约束。
6、列列级级约约束束:仅仅对对表表中中指指定定的的字字段段起起作作用用的的约约束束,如如非非空空约约束、唯一约束等。束、唯一约束等。 表表级级约约束束:对对表表中中多多个个字字段段起起作作用用的的约约束束,如如由由多多个个字字段段构成的主键约束等。构成的主键约束等。 2021/7/234教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 常见的约束包括以下几种:常见的约束包括以下几种: 非非空空(NOT NULL)约约束束:列列级级约约束束。定定义义字字段段的的输输入值不能为空(入值不能为空(NULL)。)。 如如: “学生学生”表中的表中的“学号学号”不能为空。不能为空。 唯唯
7、一一(UNIQUE)约约束束:列列级级约约束束,也也可可以以是是表表级级约约束。定义一个或多个字段的输入值必须唯一且不能重复。束。定义一个或多个字段的输入值必须唯一且不能重复。 如:如:“学生学生”表中的表中的“学号学号”不能重复。不能重复。 如:如:“选课选课”表中的表中的“学号学号+课程编号课程编号+教师编号教师编号”不能重复。不能重复。 检检查查(CHECK)约约束束:列列级级约约束束。定定义义字字段段的的输输入入值必须满足用户给定的约束条件。值必须满足用户给定的约束条件。 如:如:“学生学生”表中的表中的“性别性别”必段输入必段输入“男男”或或“女女” 2021/7/235教学进度教学
8、进度教学进度教学进度计算机科学与工程系计算机科学与工程系 主主键键(PRIMARY KEY):列列级级约约束束,也也可可以以为为表表级级约约束束。定定义义每每个个记记录录的的主主健健取取值值唯唯一一且且不不能能为为空空。每每张张表表最最多多定义一个主键约束。定义一个主键约束。 如:定义如:定义“学生学生”表中表中 “学号学号”为主键,且只能有一个主键。为主键,且只能有一个主键。 如:如:“选课选课”表中的表中的“学号学号+课程编号课程编号+教师编号教师编号”不能重复。不能重复。 外外键键(FOREIGN KEY)约约束束:列列级级约约束束,也也可可以以为为表表级级约约束束。一一般般定定义义某某
9、字字段段为为外外键键的的表表称称从从表表,其其所所引引用用字字段段所所在在的的表表称称为为主主表表。该该约约束束要要求求从从表表中中受受此此约约束束作作用用的的字字段段的的输入值必须是在主表中已经存在的字段值。输入值必须是在主表中已经存在的字段值。 如:如: “班级班级”表与表与“学生学生”表表(主主-从从) 定定义义“学学生生”表表中中的的“班班级级编编号号”为为外外键键,与与它它的的主主表表“班班级级”中的中的“班级编号班级编号”对应。对应。2021/7/236教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 (2) 索索引引:数数据据库库中中的的索索引引与与书书籍籍中
10、中的的目目录录类类似似,在在一一本本书书中中,利利用用目目录录可可以以快快速速查查找找到到所所需需要要的的信信息息,无无须须从从头头到到尾尾顺顺序序查查找找整整本本书书。索索引引使使数数据据库库程程序序无无需需对对整整个个表表进进行行扫扫描描,就就可可以以在在其其中中找找到到所所需需要要的的数数据据。利利用用索索引引可可以加快数据查询的速度、减少系统响应时间。以加快数据查询的速度、减少系统响应时间。 (3) 关关联联:一一个个关关系系数数据据库库一一般般由由多多张张表表组组成成,每每张张表表反映系统的一类实体或某些实体类之间的联系。反映系统的一类实体或某些实体类之间的联系。 例例如如,在在学学
11、生生管管理理信信息息系系统统数数据据库库中中学学生生、系系、学学院院、班班级级和和课课程程等等分分别别表表示示一一类类实实体体。现现实实中中班班级级与与学学生生之之间间存存在在的的关关联联是是每每个个学学生生都都属属于于一一个个确确定定的的班班级级,每每个个班班级级都都是是由由学学生生组组成成的的。这这种种关关联联体体现现在在关关系系数数据据库库中中,则则是是学生表对班级表的学生表对班级表的“班级编号班级编号”字段的引用关系。字段的引用关系。2021/7/237教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 Access中的数据类型:中的数据类型: 设设计计表表的的结结构
12、构,首首先先要要确确定定表表中中各各列列的的名名称称和和数数据据类类型。型。 Access定义了定义了11种数据类型。种数据类型。数据类型数据类型英文名英文名字段大小(字节)字段大小(字节)举例举例文本文本Text最大长度最大长度255姓名、学号、性别姓名、学号、性别备注备注Memo可显示可显示 65535 个字符。个字符。个人简历个人简历数字数字Number1、2、4 、8或或16个字节个字节成绩、金额、年龄成绩、金额、年龄日期日期/时间时间Date/Time8出生日期出生日期货币货币Currency8工资、金额工资、金额自动编号自动编号Auto Number4、16自动插入一个唯一的数值。
13、一般做主键字段。自动插入一个唯一的数值。一般做主键字段。是是/否否Yes/No1位位(8位为一个字节位为一个字节)取值可以是取值可以是“是是/否否”或或“真真/假假”等。等。OLE对象对象OLE Object最大最大1GB联接或内嵌于数据表中的对象,可以是图形、联接或内嵌于数据表中的对象,可以是图形、声音或其它数据。声音或其它数据。.2021/7/238教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 学生表的结构定义如下学生表的结构定义如下:列名列名数据类型数据类型大小大小可否为空可否为空索引索引说明说明学号学号文本文本6否否主键主键学生的学号,主键,不空,唯一学生的学号
14、,主键,不空,唯一姓名姓名文本文本8否否无无学生姓名,不能为空学生姓名,不能为空性别性别文本文本2是是无无取值取值“男男”或或“女女”,默认,默认“男男”出生年月出生年月日期日期/时间时间8是是无无生日生日籍贯籍贯文本文本100是是无无小于小于50个字个字班级编号班级编号文本文本10否否有有普通索引普通索引(有重复有重复),外键,外键2021/7/239教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 创建表结构:创建表结构: 用用户户完完成成表表结结构构的的设设计计后后,需需要要利利用用数数据据库库管管理理系系统统创建表。创建表。 Access提提供供多多种种创创建建数数
15、据据表表的的方方法法,其其中中表表设设计计视视图图是是一一种种可可视视化化工工具具,用用于于设设计计和和编编辑辑数数据据库库中中的的表表结结构构。用用户户可可输输入入事事先先设设计计好好的的字字段段名名、字字段段类类型型、长长度度、约约束束、主键等信息,完成对表的定义。主键等信息,完成对表的定义。 建议:建立表结构时采用设计视图的方法。建议:建立表结构时采用设计视图的方法。 或:用或:用SQL语言创建表的一般结构,再用设计视图语言创建表的一般结构,再用设计视图 修正。修正。 2021/7/2310教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.2 表结构维护表结构维护
16、字段标题与输入输出格式设置字段标题与输入输出格式设置: 1. 字段标题设置字段标题设置 字字段段标标题题是是输输出出字字段段数数据据时时在在表表、窗窗体体或或报报表表中中对对该该字字段段所所对对应应列列的的标标题题。通通过过设设置置字字段段标标题题可可将将数数据据以以用用户户比较容易接受的方式显示出来,并隐藏数据库的结构。比较容易接受的方式显示出来,并隐藏数据库的结构。 如:假如有一字段名为如:假如有一字段名为“cj”,希望表格显示,希望表格显示“成绩成绩”。 2. 输出格式设置输出格式设置 对对字字段段输输入入输输出出格格式式的的设设置置可可确确保保数数据据输输入入、输输出出符符合合一一定定
17、规规范范,并并避避免免用用户户的的输输入入错错误误。字字段段格格式式的的设设置置只只影响数据的输入和输出格式,不影响数据内容。影响数据的输入和输出格式,不影响数据内容。 如例如例4.1、例、例4.2。2021/7/2311教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 3. 自定义格式化输入自定义格式化输入/输出格式输出格式 Access允允许许用用户户自自定定义义字字段段格格式式,以以满满足足用用户户特特殊殊需需求求。对对不不同同数数据据类类型型的的数数据据,自自定定义义格格式式的的方方法法和和格格式式符符号号是是不同的。具体使用时可参照表不同的。具体使用时可参照表4.
18、8、4.10、4.11。 例如:显示电话号码时前面加例如:显示电话号码时前面加020; 数字保留数字保留2位小数显示等等。位小数显示等等。 4. 输入掩码的设置输入掩码的设置 指指定定“输输入入掩掩码码”,可可以以屏屏蔽蔽非非法法输输入入,减减少少人人为为的的数数据输入错误,并保证输入的字段数据格式统一、有效。据输入错误,并保证输入的字段数据格式统一、有效。 例如:学号必须是例如:学号必须是6位数字,其掩码是位数字,其掩码是000000 将出生日期的输入掩码设置成短日期将出生日期的输入掩码设置成短日期 密码输入,其掩码可用向导设置密码输入,其掩码可用向导设置2021/7/2312教学进度教学进
19、度教学进度教学进度计算机科学与工程系计算机科学与工程系 有效性规则与有效性文本:有效性规则与有效性文本: 字字段段的的“有有效效性性规规则则”和和“有有效效性性文文本本”主主要要用用来来避避免免一一些些输输入入错错误误。当当输输入入数数据据时时,系系统统检检查查该该字字段段新新输输入入数数据据是是否否满满足足“有有效效性性规规则则”表表达达式式,如如果果满满足足则则可可接接收收此此数数据据并并存存入入数数据据库库。如如果果不不满满足足“有有效效性性规规则则”表表达达式式,则则系系统统给出错误提示,要求重新录入。给出错误提示,要求重新录入。 例例如如,规规定定学学生生表表中中学学费费在在5000
20、到到6000之之间间,可可设设置置其其“有效性规则有效性规则”表达式为:表达式为: 学费学费5000 and 学费学费6000 若若录录入入某某学学生生学学费费不不满满足足条条件件,系系统统会会给给错错误误提提示示,要求重新录入。要求重新录入。 注注:“学费学费”可以不写可以不写,或写成或写成学费学费 。2021/7/2313教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 其它约束:其它约束: 1. 设置字段必填设置字段必填 数数据据表表中中的的有有些些字字段段在在输输入入数数据据是是必必须须录录入入的的,对对这这样样的的字字段段,可可在在字字段段属属性性中中“必必填填字
21、字段段”属属性性框框中中选选择择“是是”。此此时时系系统统在在录录入入或或修修改改记记录录时时,就就会会要要求求用用户户必必须须向向字字段段输入一个数据值。输入一个数据值。 2. “小数位数小数位数”属性属性 通通过过“小小数数位位数数”属属性性可可以以选选择择显显示示“数数字字”型型或或“货货币币”型数据的小数位数。型数据的小数位数。 3. 指定主键指定主键 建建议议对对每每张张表表指指定定一一个个主主键键。当当一一个个字字段段被被指指定定为为主主键键之之后后,会会发发现现字字段段的的“索索引引”属属性性自自动动被被设设置置为为“有有(无无重重复)复)” 。2021/7/2314教学进度教学
22、进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.3 表数据的输入与维护表数据的输入与维护 建建立立表表的的目目的的是是存存储储数数据据,因因此此建建立立表表结结构构后后对对表表的的主要操作就是数据的录入与维护。主要操作就是数据的录入与维护。 数据录入与编辑:数据录入与编辑: 数数据据处处理理最最直直接接的的方方式式是是以以“数数据据表表”方方式式打打开开表表,在在看到数据时进行数据的增加、删除与修改操作。看到数据时进行数据的增加、删除与修改操作。 对对表表中中的的数数据据,较较复复杂杂的的操操作作包包括括数数据据修修改改、数数据据复复制、数据的查找与数据替换等几种。制、数据的查找与
23、数据替换等几种。2021/7/2315教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 1. 数据修改数据修改 修修改改表表中中的的数数据据最最简简单单的的方方法法是是用用鼠鼠标标或或键键盘盘选选择择相相应应记记录录的的要要修修改改的的字字段段,直直接接输输入入新新值值即即可可。但但为为保保证证数数据安全、提高效率,一般可采用以下几种方法:据安全、提高效率,一般可采用以下几种方法: 采用数据替换方式进行数据批量修改。采用数据替换方式进行数据批量修改。 用用命命令令方方式式进进行行数数据据单单个个或或批批量量修修改改,此此方方法法用用到到专专门的数据库的结构化查询语言门的数据
24、库的结构化查询语言SQL语言。语言。 设设计计专专门门用用于于数数据据修修改改的的窗窗体体,让让用用户户在在窗窗体体中中进进行行数据修改。数据修改。2021/7/2316教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 3. 数据的查找操作数据的查找操作 (1) 按记录号查找数据按记录号查找数据 使用记录定位器指定记录号,或到首末记录。使用记录定位器指定记录号,或到首末记录。 (2) 查找指定内容查找指定内容 使用查找替换的方法。使用查找替换的方法。 查找操作较多采用的是查找操作较多采用的是SQL语言。语言。 2. 数据复制数据复制 与与一一般般的的复复制制相相同同。但但注
25、注意意定定义义了了主主键键或或其其它它字字段段的的唯一性约束,则插入不成功。唯一性约束,则插入不成功。2021/7/2317教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 格式化数据表:格式化数据表: 包包括括更更改改行行高高和和列列宽宽、改改变变字字段段次次序序、隐隐藏藏/显显示示列列、冻结冻结/解冻列、设置数据表格式和显示设置字体等。解冻列、设置数据表格式和显示设置字体等。 导入与导出数据及链接外部数据导入与导出数据及链接外部数据: 1. 导入表操作导入表操作 可可以以导导入入其其它它Access数数据据库库文文件件、Word文文档档、Excel等等多种符合多种符合A
26、ccess规格的文件。规格的文件。 2. 导出表操作导出表操作 导入的反操作。导入的反操作。2021/7/2318教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 记录排序:记录排序: 在在数数据据表表中中查查看看数数据据时时,数数据据的的顺顺序序是是其其输输入入顺顺序序或或按按主主键键升升序序。而而在在数数据据库库实实际际应应用用中中,往往往往需需要要依依据据不不同同需求排列数据。需求排列数据。 例如,查看按学生年龄、姓名或籍贯排列的学生记录。例如,查看按学生年龄、姓名或籍贯排列的学生记录。 包包括括对对数数据据表表中中数数据据记记录录的的排排序序、筛筛选选、查查找找、替
27、替换换等操作。等操作。4.4 记录操作记录操作 排序记录时所依据的规则:排序记录时所依据的规则: 中文按拼音字母的顺序排序。中文按拼音字母的顺序排序。 英文按字母顺序排序。大、小写视为相同。英文按字母顺序排序。大、小写视为相同。 数字由小至大排序。数字由小至大排序。2021/7/2319教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 筛选记录:筛选记录: 有有时时不不需需要要显显示示整整个个数数据据表表,而而是是只只想想查查看看其其中中某某些些数据,而且其它暂时不想显示的数据并不想删除。数据,而且其它暂时不想显示的数据并不想删除。 例例如如,只只查查看看广广东东籍籍的的学
28、学生生记记录录,或或只只查查看看1990年年后后出生的学生记录等。出生的学生记录等。 筛筛选选操操作作在在数数据据表表中中可可以以为为一一个个或或多多个个字字段段指指定定条条件件,只有符合条件的记录才被显示出来。只有符合条件的记录才被显示出来。 四种方法筛选记录:四种方法筛选记录: 1. 按选定内容筛选按选定内容筛选 例如,对学生表,选择一个性别值为例如,对学生表,选择一个性别值为“男男”的记录。的记录。 选择一个性别值为选择一个性别值为“男男”的籍贯为的籍贯为“广东广东”的记录。的记录。2021/7/2320教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 2. 按窗体筛
29、选按窗体筛选 例如,查看班级号为例如,查看班级号为111的男生或班级号为的男生或班级号为112的女生。的女生。 3. 输入筛选目标输入筛选目标 例如,查看出生日期大于例如,查看出生日期大于1987-1-1的男生。的男生。 4. 高级筛选高级筛选 当当涉涉及及到到条条件件复复杂杂的的筛筛选选情情况况时时,可可使使用用高高级级筛筛选选。使使用用“高高级级筛筛选选/排排序序”窗窗口口筛筛选选记记录录可可以以是是针针对对数数据据库库中中的的多多个表或查询。个表或查询。 例例如如,查查看看出出生生日日期期大大于于1987-1-1的的男男生生。按按籍籍贯贯升升序排列。序排列。 例例如如,在在学学生生表表中
30、中找找出出出出生生在在1987年年的的男男生生。并并按按出出生日期升序排列。生日期升序排列。2021/7/2321教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 索引相关知识:索引相关知识: 1. 索引的概念索引的概念 索索引引是是非非常常重重要要的的属属性性。在在一一个个字字段段上上建建立立索索引引后后,可可以以以以索索引引作作为为入入口口对对数数据据表表中中的的数数据据进进行行访访问问,此此时时顺顺序序读读写写数数据据所所得得到到的的不不再再是是按按存存储储数数据据的的先先后后顺顺序序而而是是索索引文件中排列的索引列的顺序。引文件中排列的索引列的顺序。 4.5 表的索
31、引与关联表的索引与关联 索引表可加快系统对查询请求的处理速度。索引表可加快系统对查询请求的处理速度。 例例如如,对对数数据据表表要要查查找找年年龄龄最最小小的的学学生生,如如果果没没有有索索引引,需需要要搜搜索索整整个个数数据据表表,逐逐个个判判断断查查找找出出生生年年月月最最小小的的学学生生。而而如如果果存存在在此此字字段段上上的的索索引引,则则只只在在提提取取索索引引文文件件中中最最后后一一个记录所对应的数据表记录即可。个记录所对应的数据表记录即可。2021/7/2322教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 例例如如对对学学生生表表按按出出生生年年月月字字段
32、段建建立立索索引引,则则索索引引文文件件中保存的数据格式见表。中保存的数据格式见表。索引字段(索引关键字)记录所对应的学生学号1985-8-140501081985-9-120501031986-1-230501311986-1-250501091986-2-240501332021/7/2323教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 2. 索引的分类索引的分类 索索引引一一般般分分为为聚聚集集索索引引、非非聚聚集集索索引引两两类类,或或分分为为主主键索引、非主键索引两类。键索引、非主键索引两类。索引的概念索引的概念 (1) 聚集索引聚集索引 聚聚集集索索引引的的
33、主主要要特特点点是是索索引引的的顺顺序序与与数数据据表表中中的的记记录录的物理顺序相同。的物理顺序相同。 例例如如,字字典典中中的的拼拼音音查查找找目目录录就就是是聚聚集集索索引引因因为为它它的的顺序和字典中内容的顺序相同。顺序和字典中内容的顺序相同。 例例如如,学学生生表表中中设设置置学学号号为为主主键键,则则学学号号的的排排列列顺顺序序就是记录的物理顺序。就是记录的物理顺序。 在一般数据库系统中每个表只能有一个聚集索引。在一般数据库系统中每个表只能有一个聚集索引。2021/7/2324教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 (2) 非聚集索引非聚集索引 非非聚
34、聚集集索索引引的的索索引引顺顺序序与与表表中中记记录录的的物物理理顺顺序序可可以以不不同同,即即非非聚聚集集索索引引不不会会改改变变表表中中的的记记录录的的物物理理顺顺序序,相相当当于于字字典典中中的的部部首首查查找找法法。一一个个数数据据表表可可以以拥拥有有一一个个或或多多个个非聚集索引。非聚集索引。 例例如如,学学生生表表中中设设置置班班级级编编号号为为外外键键,属属非非聚聚集集索索引引,不影响记录的物理顺序。不影响记录的物理顺序。 另外,索引还可分为唯一索引与一般索引。另外,索引还可分为唯一索引与一般索引。 唯唯一一索索引引并并不不是是对对于于索索引引存存储储类类别别的的分分类类,它它表
35、表示示该该列列的的值值唯唯一一,它它既既可可以以是是聚聚集集索索引引也也可可以以是是非非聚聚集集索索引引。在创建主键时,将会自动创建唯一聚集索引。在创建主键时,将会自动创建唯一聚集索引。 例例如如,学学生生表表中中的的学学号号和和属属唯唯一一索索引引,班班级级编编号号则则为为一一般索引。而在班级表中班级编号是唯一索引。般索引。而在班级表中班级编号是唯一索引。 2021/7/2325教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 3. 索引的创建方法索引的创建方法 Access允许多种方式创建索引:允许多种方式创建索引: (1) 主键索引的建立方法。主键索引的建立方法。 具
36、具体体操操作作过过程程 :进进入入表表的的设设计计视视图图,选选中中某某个个要要做做主主键的列后,右击表中最左端。键的列后,右击表中最左端。 (2) 在单个字段上创建索引的方法。在单个字段上创建索引的方法。 具具体体操操作作过过程程在在表表的的设设计计视视图图下下,点点击击要要选选择择的的列列,选选择择索索引引条条目目,选选择择无无,则则此此列列上上没没有有索索引引,选选择择“有有(有有重重复复)”,则则建建立立一一个个允允许许重重复复值值存存在在的的索索引引;选选择择“有有(无重复)(无重复)”,则系统在此字段上建立一个唯一索引。,则系统在此字段上建立一个唯一索引。 (3) 输入输入SQL语
37、句的方式创建索引。语句的方式创建索引。 若若需需要要建建立立更更复复杂杂的的索索引引,则则需需要要通通过过输输入入SQL语语句句建立查询来进行操作。建立查询来进行操作。 2021/7/2326教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 创建表间关联:创建表间关联: 一一个个关关系系数数据据库库一一般般由由多多张张表表组组成成,每每张张表表反反映映系系统统的一类实体或某些实体类之间的联系。的一类实体或某些实体类之间的联系。 例例如如,在在学学生生管管理理信信息息系系统统数数据据库库中中,则则教教师师、学学生生、系系、学学院院、课课程程等等分分别别表表示示一一类类实实体体
38、。而而选选课课表表则则反反映映了了学学生生、课课程程和和教教师师之之间间的的联联系系,即即学学生生选选择择某某门门课课程程进进行行学学习习,由由教教师师与与学学生生共共同同完完成成教教学学任任务务并并最最终终给给出出学学生生该该门课的成绩。门课的成绩。 由由此此可可知知,一一个个数数据据库库中中多多张张表表之之间间一一般般是是存存在在某某些些联系的。联系的。2021/7/2327教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 1. 关联分类关联分类 (1) 一对一一对一(1:1)关联关联 例例如如学学院院和和院院长长之之间间的的关关系系,现现实实中中一一般般每每个个学学院
39、院只只有有一一个个院院长长(现现任任的的),而而且且每每个个院院长长只只能能担担任任一一个个学学院院的的院院长长,所以学院和院长之间是一对一的关系。所以学院和院长之间是一对一的关系。 (2) 一对多一对多(1:n)关联关联 例例如如学学生生和和系系之之间间的的关关系系,每每个个学学生生最最多多属属于于一一个个系系,而每个系可包含多个学生。而每个系可包含多个学生。 (3) 多对多多对多(m:n)关联关联 例例如如学学生生和和课课程程以以及及教教师师与与课课程程之之间间的的关关系系,一一般般每每个个学学生生可可以以选选修修多多门门课课程程,每每门门课课程程也也可可以以由由多多个个学学生生选选修修,
40、因因此此二二者者之之间间是是多多对对多多的的关关系系。同同理理每每个个教教师师可可以以上上多多门门课课程,每门课程也可以由多个教师上。程,每门课程也可以由多个教师上。2021/7/2328教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 多多对对多多关关系系实实际际上上是是某某两两个个表表与与第第三三个个表表的的两两个个一一对对多多关关系系,第第三三个个表表的的主主键键包包含含两两个个字字段段,分分别别是前两个表的外键。是前两个表的外键。字段名字段名字段类型字段类型字段长度字段长度小数点小数点索引类型索引类型学号学号字符型字符型6 6主索引主索引姓名姓名字符型字符型6 6性
41、别性别字符型字符型2 2出生年月出生年月日期日期/ /时间型时间型短日期短日期籍贯籍贯字符型字符型5050班级编号班级编号字符型字符型8 8外键外键选课选课 学生学生- -选课选课(1:n)(1:n) 课程课程- -选课选课(1:n) (1:n) 教师教师- -选课选课(1:n) (1:n) nMMn2021/7/2329教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 2. 关联的建立方法关联的建立方法 建建立立数数据据库库中中表表之之间间的的关关联联,需需要要满满足足一一定定的的条条件件,其其一一是是表表与与表表之之间间两两个个字字段段是是有有关关联联的的。其其二二是是
42、主主表表相相应应字字段段已已建建立立了了主主键键或或唯唯一一索索引引。所所谓谓主主表表指指被被关关联联的的表表,而而关关联联到主表的另一表称为从表。到主表的另一表称为从表。 建立两张表之间关联的过程如下:建立两张表之间关联的过程如下: (1) 打开工具菜单打开工具菜单/关系关系; (2) 将要建立关联的表选择添加到将要建立关联的表选择添加到“关系关系”窗口窗口; (3) 将将从从表表中中的的相相关关字字段段拖拖到到主主表表的的相相关关字字段段位位置置,则则系系统统弹弹出出“编编辑辑关关系系”对对话话框框。在在此此对对话话框框中中选选中中“实实施施参参照照完整性完整性”,然后单击,然后单击“创建
43、创建”按钮。按钮。 注意:注意:Access只支持只支持1:1、1:n关联,不支持关联,不支持m:n联系。联系。2021/7/2330教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 子表:子表: 当当两两个个表表之之间间建建立立关关联联关关系系后后,两两张张表表的的数数据据就就通通过过关关联联字字段段联联系系起起来来。此此时时在在查查看看一一张张表表时时,可可以以设设置置显显示示另另一一张张表表中中关关联联字字段段上上取取相相同同值值的的记记录录数数据据。Access中中这这种种关关系系通通过过建建立立子子数数据据表表来来实实现现。一一般般称称首首先先查查看看的的一一张张表表称称为为父父表,在查看过程中参考的另一张表称为子表。表,在查看过程中参考的另一张表称为子表。 建建立立子子数数据据表表的的操操作作方方法法是是打打开开父父表表,在在“数数据据库库”窗窗口口中中打打开开“插插入入”菜菜单单,选选择择“子子数数据据表表”命命令令,此此时时系系统统打打开开“插插入入子子数数据据表表”对对话话框框,从从中中选选择择子子数数据据表表,并并填填写写关关联联字字段信息,则完成建立子数据表操作。段信息,则完成建立子数据表操作。 例如:将系作为学院表的子数据表,同时查看两表内容。例如:将系作为学院表的子数据表,同时查看两表内容。 2021/7/2331