数据库原理及应用(Access版)(第4版)
上QQ阅读APP看书,第一时间看更新

3.3 创建数据表

数据表是Access数据库的基础,是存储数据的地方,它在数据库中占有重要的地位。在Access数据库中,数据表包括两个部分:表结构和表数据。在创建数据表时,需要先创建表结构,然后再输入数据。表结构包括了数据表由哪些字段构成,这些字段的数据类型和格式是怎样的等内容。

3.3.1 Access数据类型

在设计数据表结构时,需要定义表中字段所使用的数据类型。Access常用的数据类型有:文本、数字、日期/时间、货币、自动编号、是/否、备忘录、OLE对象、超链接、附件、计算等。

1.短文本

短文本数据类型所使用的对象是文本、数字和其他可显示的符号及其组合。例如,地址、姓名或是用于不需要计算的数字,如邮政编码、学号、身份证号等。

文本数据类型是Access系统默认的数据类型,默认的字段大小是255,最多可以容纳255个字符。字段的最多可容纳字符数可以通过设置“字段大小”属性来进行设置。

短文本数据类型即之前版本的文本数据类型。

注意:在数据表中不区分中西文符号,即一个西文字符或一个中文字符均占一个字符长度。同时,数据表在对文本字段的数据进行保存时,只保存已输入的符号,即非定长字段。

2.长文本

长文本数据类型可以解决短文本数据类型无法解决的问题,用于存储长文本和数字的组合,或具有RTF格式的文本。例如注释或说明等。

可以存储的文本多达千兆字节,不过窗体和报表上的控件只能显示前64000个字符。

长文本字段与之前版本中的备注型字段功能相同。

3.数字

数字数据类型可以用来存储需要进行算术运算的数据类型。

数字数据类型可以通过“字段大小”属性来进行进一步的设置。系统默认的数字类型是长整型,但Access可以对多种数据类型进行设置,具体示数范围如表3-1所示。

表3-1 数字数据类型表

4.大数

大数据类型存储非货币、数字值,用于计算大数字,字段长度为8字节。

数值范围为:-263~263-1,即-9 223 372 036 854 775 808~9 223 372 036 854 775 807。

5.日期/时间

日期/时间数据类型用于存储日期、时间或日期时间组合。日期/时间字段的长度为8字节。

日期/时间数据类型可以在“格式”属性中根据不同的需要进行显示格式的设置。可设置的类型有常规日期、长日期、中日期、短日期、长时间、中时间和短时间等。

6.货币

货币数据类型是用于存储货币值的。在数据输入时,不需要输入货币符号和千分位分隔符,Access会自动显示相应的符号,并添加两位小数到货币型字段中。

货币型字段的长度为8字节。在计算期间禁止四舍五入。

7.自动编号

自动编号数据类型是一个特殊的数据类型,用于在添加记录时自动插入的唯一顺序(每次递增1)或随机编号。

自动编号型字段的长度为4字节,保存的是一个长整型数据。每个表中只能有一个自动编号型字段。

注意:自动编号数据类型一旦指定,就会永久地与记录连接。如果删除表中含有自动编号字段的一条记录后,Access不会对表中自动编号型字段进行重新编号,当添加一个新记录时,被删除的编号也不会被重新使用。用户不能修改自动编号字段的值。

8.是/

是/否数据类型是针对只包含两种不同取值的字段而设置的。例如,是/否(Yes/No)、真/假(True/False)、开/关(On/Off),又称为布尔型数据。

是/否型字段数据常用来表示逻辑判断的结果。字段长度为1位。

9.OLE对象

OLE对象数据类型是指字段允许链接或嵌入其他应用程序所创建的文档、图片文件等,例如Word文档、Excel工作簿、图像、声音或其他二进制数据等。链接是指数据库中保存该链接对象的访问路径,而链接的对象依然保存在原文件中;嵌入是指将对象放置在数据库中。

OLE对象字段最大长度为1GB,但它受磁盘空间的限制;以编程方式输入数据时为2GB的字符存储。

10.超链接

超链接数据类型用于存放超级链接地址。超链接型字段包含作为超链接地址的文本或以文本形式存储的字符与数字的组合。

超链接地址可以是UNC路径(在局域网中的一个文件地址)、URL和对象、文档、Web页或其他目标路径等。

11.附件

附件数据类型用于存放图片、图像、二进制文件、Office文件等,是用于存放图像和任意类型的二进制文件的首选数据类型。

对于压缩的附件,最大为2GB;未压缩的附件,最大容量约为700KB。

12.计算

计算数据类型用于显示计算结果,计算时必须引用本表里的其他字段。

可以使用表达式生成器来创建计算字段。计算字段的字段长度为8字节。

13.查阅向导

查阅向导数据类型用于为用户提供一个字段内容列表,可以在组合框中选择所列内容作为字段内容。

查阅向导可以显示如下两种数据来源。

● 从已有的表或查询中查阅数据列表,表或查询中的所有更新均会反映到数据列表中;

● 存储一组不可更改的固定值列表。

查阅向导字段的数据类型和大小与提供的数据列表相关。

注意:附件和计算数据类型不可用于 .mdb文件格式。

3.3.2 创建表

在Access中,常用的创建数据表的操作方法有如下几种。

● 直接插入一个空表。

● 使用设计视图创建表。

● 从其他数据源导入或链接到表。

● 根据SharePoint列表创建表。

1.表规范

在Access数据库中,除了需要了解表中允许的字段类型外,还需要了解表的一些规范,如表3-2所示。

表3-2 表规范

2.字段名命名规则

1)文字、数字、空格和特殊字符(句点(.)、感叹号(!)、方括号([])、前导空格、前导等号(=)或非打印字符(如回车)除外)的任意组合。名称不能包含以下任何字符:`、/、\、:、;、*、?、"、'、<、>、|、#、<TAB>、{、}、%、~、&。

2)字段名长度不得超过64个字符。

3)同一个数据表的字段名称不能相同。

字段名的命名规则虽然允许使用空格和一些其他符号,但通常在定义数据表时,为了方便使用,字段名中不要使用空格。

3.利用数据表视图创建表

数据表视图是按行和列显示表中数据的视图,在该视图下,可以对字段进行编辑、添加、删除和数据查找等操作,也是创建表常用的视图。

如果新建一个空白数据库,当数据库创建成功后,系统将自动进入数据表创建视图;如果在一个已创建的数据库中创建一个新的数据表,可切换到“创建”功能选项卡,在“表格”组中单击“表”按钮,即可在数据表视图下创建1个新的数据表。

如图3-10所示,即为利用数据表视图创建“course”数据表的操作方式。

注意:ID字段默认数据类型为“自动编号”,添加新字段的数据类型为“文本”。如果添加的是其他类型的字段,则可利用“单击以添加”右侧的下拉列表或功能区的“添加和删除”组,进行类型的设置。如果表中不需要自动编号的ID字段,则可用“添加和删除”组的“删除”按钮将该字段删除。

4.利用设计视图创建表

设计视图是显示表结构的常用视图,在该视图下,可以看到数据表的字段构成,同时还可查看各个字段的数据类型和相应的属性设置。设计视图是最常用也是最有效的表结构设计视图。

利用设计视图创建数据表的操作方法是:在“创建”选项卡的“表格”组中单击“表设计”按钮。在表设计视图下创建数据表,需要对表中每一个字段的名称、数据类型和各自的属性进行设置。这里在设计视图中创建“student”数据表,具体的操作方法如图3-11所示。

在设计视图下,左侧的第一列按钮即为字段选定器,如需要对某一字段进行修改,可单击字段选定器,使该字段成为当前字段,再进行修改。在表中设定主键时,先选定该字段为当前字段,再单击“工具”组的“主键”按钮即可完成。

图3-10 利用数据表视图创建“course”数据表

图3-11 利用设计视图创建“student”数据表

5.通过导入数据创建数据表

数据共享是加快信息流通,提高工作效率的要求。Access提供的导入和导出功能是通过数据共享来实现的。在Access中,可以通过导入存储在其他位置的信息来创建表,如可以导入Excel工作表、ODBC数据库、其他Access数据库、文本文件和其他类型的文件。

如图3-12所示,为将Excel工作簿中的教师信息表导入到Access数据库的操作过程。

图3-12 导入数据创建数据表

Access除了可将其他文件里的数据导入到数据库中成为数据表外,还可通过链接的方式将其他位置存储的信息作为当前数据库中的表,可链接的数据类型与导入表的数据类型是一致的。

导入信息时,是在当前数据库中创建一个新表;而链接信息时,是在当前数据库中创建一个链接表,该表与原数据之间存在一个活动链接,当在链接表中数据发生更改时,原数据也会更新,当然原数据发生变化时,链接表中也会得到更新,而导入表,则与原数据脱离关系。链接的方式与导入的方式相同,这里不再赘述。

6.查阅向导的使用

在创建数据表时,对于一些字段的输入值范围是固定的,为了统一数据关系,常常通过定义字段的输入数据列表的方式来保证数据的输入有效性,在Access中可采用“查阅向导”的方式来实现。具体的操作步骤如图3-13所示。

图3-13 利用“查阅向导”创建值列表

注意:查阅向导用于在数据输入时产生数据列表,所产生字段的数据类型与数据列表的类型有关。在Access中,还允许查阅存储多个值。

通过查阅向导创建数据列表,除了输入固定的值以外,还可在查阅向导中选择“使用查阅字段获取其他表或查询中的值”单选按钮,让数据列表的值来源于已经存在的表或查询中,这样的好处是如果需要数据表中的值发生变化,只需要修改提供数据列表的表或查询的值即可,而不需要修改表结构。

值列表的产生,除了使用查阅向导产生外,还可在表设计视图中,在“字段属性”的“查阅”选项卡的“显示控件”属性列表中选择“组合框”或“列表框”,“查阅”选项卡的下方则会出现多个属性对本字段的列表进行设置,在“行来源类型”属性列表中选择“值列表”,在下方的“行来源”属性中输入相应的值列表,如本例中的职称字段,可输入值列表“"教授";"副教授";"讲师";"助教"”。

注意:值列表用常量表示,值之间用西文的分号“;”分隔。

7.计算字段

Access在早期版本中无法将计算字段的数据保存在数据表中,只能通过查询来实现数据表中多字段的计算,在Access 2016中,可以将计算字段保存在该类型的字段中。

此处以教师工资信息为例,在教师工资信息中,除了基本工资项外,还希望了解教师的应发工资情况,但应发工资是根据每个工资项计算而来的,而不属于输入项,在这里,通过计算字段方式,计算每个人的应发工资,以备使用。具体的操作方式如图3-14所示。

图3-14 计算字段的设置过程

在计算字段设置时,也可以不用表达式生成器,而直接在字段属性的“表达式”栏中输入计算表达式。

3.3.3 设置字段属性

1.字段大小

字段大小规定字段中最多存放的字符个数或数值范围,主要用于短文本或数字型字段。

● 短文本型字段:系统规定的短文本型字段最多可放置255个字符。这里定义的字段大小是规定放置的最多字符个数,如果某条记录中该字段的字符个数没有到达最多时,系统只保存输入的字符,短文本型字段是一个非定长字段。

● 数值型字段:字段的大小分为字节型、整型、长整型、单精度和双精度,它确定了数值型数据的存入大小和精度。

注意:当字段大小设置好后,即可进行数据的输入。如果字段大小要进行修改,如文本型字段的大小要减小,就有可能会造成原来输入的数据发生丢失。因此,除非必要,一般不要将数据表中的文本型字段的长度减小。

2.格式

规定数据的显示格式,格式设置仅影响显示和打印格式,不影响表中的实际存储的数据。

对于数字型、货币型、日期/时间型和是/否型字段,Access提供了预定义的格式设置,可以选择适合的数据格式进行显示。预定义格式如表3-3所示。

表3-3 字段预定义格式表

注意:假设日期/时间型数据的值为2018-09-12 16:02:20。

在是/否型数据的显示格式中,系统默认的数据表视图下显示的均为复选框,选中表示真,未选表示假。是/否型字段在数据表视图下的显示方式也可改为文本框方式,显示逻辑值。具体的操作如图3-15所示。对于逻辑型数据,如果字段“显示控件”是“文本框”方式时,不管显示格式是什么,在数据输入时逻辑真输入-1,逻辑假输入0。若“显示控件”是“复选框”方式时,选中则表示逻辑真,不选则表示逻辑假。

图3-15 是/否型字段的显示格式设置

除了预定义格式外,系统还允许对文本型、数值型和日期型等字段类型进行格式设置,通常称作自定义格式。

对于文本型字段,系统没有给出预定义的格式,允许用户自定义格式。在自定义时可使用的格式符号如表3-4所示。

表3-4 文本类数据类型的自定义格式说明

在字段格式定义时,“短文本”和“长文本”字段的自定义格式最多可含两个部分。第一部分,含文本的字段格式;第二部分,含零长度字符串和NULL值的字段格式。

例如,如果有一个文本框控件,其中需要在字段中没有字符串时显示“无”字,则可以输入自定义格式“@;"无"”,将它作为该控件的“格式”属性设置。“@”符号可显示字段中的文本;而当字段中存在零长度字符串或NULL值时,第二部分可显示“无”字。

自定义格式的格式符比较丰富,这里不再一一赘述,有兴趣的读者可以通过查找帮助进行了解。

3.字段标题

标题是字段的显示名称,在数据表视图中,它是字段列标题处显示的内容,在窗体、报表中,是字段标签显示的内容。如果在字段属性中未设置标题,则字段标题即为字段名称;否则,则显示所设置的标题。

注意:通常,数据表中的字段名是用于字段管理和访问的,如程序中调用或其他对象中调用等,因此为了方便代码的书写,常常对字段名的命名采用英文缩略词或拼音标识等。但为了在数据表视图的列标题中能够清晰标明字段的内容,或在其他对象访问时能够在标签中显示字段内容,可以为字段设置标题。因此,字段标题不是字段名,它只是在数据表视图中列标题所显示的名称。如果一个字段设置了标题,在其他对象中要访问该字段时,仍然要使用字段的名称,而不能使用它的标题,否则会导致该字段不能被访问。

4.输入掩码

为了减少数据输入时的错误,Access还提供了“输入掩码”属性对输入的个数和字符进行控制。只有文本型、日期/时间型、数字型和货币型字段有“输入掩码”属性。字段的“输入掩码”属性可以通过“输入掩码向导”来进行设置。

掩码分为3部分。

● 第一部分是必需的,它包括掩码字符或字符串(字符系列)和字面数据(例如,括号、句点和连字符)。

● 第二部分是可选的,是指嵌入式掩码字符和它们在字段中的存储方式。如果第二部分设置为0,则这些字符与数据存储在一起;如果设置为1,则仅显示而不存储这些字符。将第二部分设置为1,可以节省数据库存储空间。

● 第三部分也是可选的,指明作为占位符的单个字符或空格。默认情况下,Access使用下画线“_”。如果希望使用其他字符,在掩码的第三部分中输入。

下面是美国电话号码的输入掩码:(999)000-000;0;-:

该输入掩码使用了两个占位符,字符9和0。9表示可选位(选择性地输入区号),而0表示强制位;输入掩码的第二部分中的0表示掩码字符将与数据一起存储;输入掩码的第三部分指定连字符“-”而不是下画线“_”将作为占位符字符。

掩码字符及功能说明如表3-5所示。

表3-5 掩码字符及功能说明

(续)

注意:

1)掩码字符的大小写作用不相同。

2)不要将“输入掩码”属性与“格式”属性相混淆。如出生日期字段,输入掩码设置为“0000-99-99;;*”,将“格式”属性设置为“长日期”,在光标进入该字段时,单元格中显示的是“****-**-**”,输入完毕数据后(假如输入20180912),光标离开后,单元格中显示“2018年9月12日”。

3)如果计划在日期/时间字段上使用日期选取器,则不应该为该字段设置输入掩码。

如图3-16所示为输入掩码设置的操作过程。

图3-16 输入掩码的设置

5.小数位数

只有数字型、货币型字段有“小数位数”。若“小数位数”属性设置为“自动”,则默认保留两位小数。

对于数字型字段,当“格式”属性设置为“常规数字”时,“小数位数”属性无效。当“格式”属性设置为其他预定义格式时,“小数位数”属性有效。单精度类型的数据,整数和小数部分的有效数字位数最多7位;双精度类型的数据,有效数字位数最多15位。

对于货币型字段,当“格式”属性设置为“常规数字”时,“小数位数”属性无效。当“格式”属性设置为其他预定义格式时,小数位数可设置0~15位,但当小数位数超过4位时,只保留4位有效数字,其余位显示为0。

6.默认值

字段的默认值即为在新增记录时尚未输入数据,就会出现在字段中的值。通常会是表中大多数记录都使用的值。如果不需要该值,可以修改。

注意:默认值的数据类型必须与字段类型一致,同时,如果设置了验证规则,则默认值必须符合验证规则的要求。

7.输入法模式

输入法模式可以设置为随意、开启、关闭和其他特殊的输入法状态。当设置为“开启”时,数据输入切换到该字段时,系统会自动打开中文输入法。

8.验证规则和验证文本

在输入数据时,为了防止输入错误,可进行字段“验证规则”属性的设置。验证规则使用Access表达式来描述,验证文本是用来配合验证规则使用的。在设置验证文本后,当输入的数据违反验证规则时,系统就会给出明确的提示性信息。

验证规则通常由关系表达式或逻辑表达式构成。验证规则的设置可以直接在该属性后面的文本框中输入表达式来表示字段值的有效范围,同时也可将插入光标置于“有效性规则”文本框中,在文本框的右侧将出现一个“生成器”按钮,单击该按钮在弹出的对话框中设置验证规则即可。

例如,在性别字段的“验证规则”属性中设置“"男"Or"女"”,在输入数据时,如果输入的数据不是男或女,则系统拒绝接受数据,光标不能移出该字段,并提示错误信息。具体操作如图3-17所示。

图3-17 有效性规则及有效性文本的设置及使用

9.必需字段

在数据表中,对于所设置的字段,如果要求某些字段的信息是必须要获取的,则可将该字段的“是否必填字段”属性设置为“是”,这样在输入数据时,系统要求必须输入字段的值,否则不能进入后面的操作。这样就保证了该字段的数据不会被漏填。

10.索引

创建索引,可以提高记录的查找和排序的速度。用于对数据表中的数据按照字段的值排序记录,方便数据的查找。

字段的索引属性有3类:无、有(有重复)和有(无重复)。

11.Unicode压缩

当“Unicode压缩”属性值为“是”时,表示字段中数据可以存储和显示多种语言的文本,使用Unicode压缩,还可以自动压缩字段中的数据,使得数据库文件变小。

3.3.4 修改表结构

在创建数据表时,由于各种原因,会有结构不合理的地方,在使用过程中,可对表的结构进行修改,增、删字段等。

表结构的修改通常可以在“设计视图”和“数据表视图”两种视图中完成。

1.更改字段名

当数据表设置好后,如果希望修改字段名,可以在两种状态下实现。

(1)数据表视图

在数据表视图下,将鼠标指针指向字段列标题位置双击,就可选中字段名,输入新的字段名保存即可。也可将鼠标指针指向要修改字段的列标题处,右击,在弹出的快捷菜单中选择“重命名字段”命令,选中列标题名即可进行修改。

注意:在同一张表中不能出现两个相同的字段名。当字段名修改后,如果要撤销当前的修改,一定要在保存操作之前,一旦执行了保存操作,修改操作就不能被撤销。撤销操作可用〈Ctrl+Z〉组合键或单击快速访问工具栏上的“撤销”按钮

(2)表设计视图

在表设计视图下,将光标置于要修改的字段处,即可进行修改。修改后单击保存按钮将所做的修改保存在数据库中。

2.增加或删除字段

在设计视图或数据表视图下,均可增加或删除数据表字段。

(1)在设计视图状态

增加字段:如果表需要增加的字段是放在所有字段之后,则只要将光标置于最后字段的下一行,即可输入新字段。如果要增加的字段要放置在已有字段的中间,则单击要插入字段的位置,选择快捷菜单的“插入行”命令,或单击“工具”组的“插入行”按钮,在指定位置插入一个空行,即可输入新字段。

删除字段:要删除哪个字段,则右击该字段的行任意位置,使之成为当前行,在弹出的快捷菜单选择“删除行”命令或单击“工具”组的“删除行”按钮,将弹出对话框询问是否永久地删除所选定的字段和相应的数据,如果单击“是”按钮,则可删除指定的字段;单击“否”按钮,则放弃字段的删除操作。

(2)在数据表视图状态

增加字段:单击“单击以添加”,选择数据类型在最后添加新字段;若要在哪个字段前插入新字段,将光标置于该字段列,右击,在弹出的快捷菜单中选择“插入字段”命令,即在光标所在列的左侧插入一个新列,字段名为“字段1”,字段数据类型为文本型。双击列标题,可修改字段名,如果需要修改数据类型,可切换到设计视图进行修改。要修改字段名,也可在该列上右击,在弹出的快捷菜单中选择“重命名列”命令,选中列名,输入新的字段名即可。

删除字段:将光标置于要删除的字段的字段名处,右击,在弹出的快捷菜单选择“删除字段”命令,在弹出的对话框中根据提示选择是否要删除,单击“是”按钮即可删除。

3.修改字段类型

表设计好后如果发现字段的类型不合适,可进行修改。字段类型的修改必须在表设计视图下实现。即在设计视图下,将光标置于要修改类型的字段行的“数据类型”列表框中,单击下拉按钮,在打开的列表中选择正确的数据类型,保存数据表即可。

注意:在数据类型修改时,有可能会造成由于数据类型的变化而使表中的数据丢失。

3.3.5 输入数据

数据表设计好后,就需要往表里添加数据,数据的录入有两种方式:一种是在“数据表视图”状态下直接输入数据;另一种是批量导入数据。

1.在“数据表视图”下输入数据

在建立了数据表结构后,即可进行数据的输入操作。数据的输入操作是在数据表视图状态下进行的。数据的录入顺序是按行录入,即输入一条记录后再输入下一条记录。

打开数据表有两种方法:一是在对象导航栏中双击要录入数据的表名,即在右侧的对象窗格中打开该表;另一种方式是在表名上右击,在弹出的快捷菜单中选择“打开”命令。

数据的录入是从第一个空记录的第一个字段开始分别输入相应的数据,每输入完一个字段值时,按〈Enter〉键或〈Tab〉键转到下一字段,也可单击进入下一个字段。当一条记录的最后一个字段输入完毕后,按〈Enter〉键或〈Tab〉键转到下一条记录。

在输入数据时,当开始输入一条新记录后,在表的下方均会自动添加一条新的空记录,且记录选择器上会显示一个星号,表示该记录为一条新记录;当前准备输入的记录选择器则会呈黄色,此行为浅蓝色背景,表示此记录为当前记录;在输入数据时,该条记录左侧的记录选择器上会有一个笔形符号,表示该记录为正在输入或修改的记录。

对于是/否型字段,如果字段在数据表中显示的是复选框形式时,则需要单击复选框表示选中,即逻辑真(True),不选表示逻辑假(False)。

数据表中的OLE对象的数据录入需要通过插入对象的方式来实现。插入对象有两种方式:“新建”和“由文件创建”。如果选择“新建”方式,则右侧的“对象类型”列表框中列有Access允许插入的所有对象类型的应用程序列表,选中应用程序,单击“确定”按钮,即可新建相关对象。若选择“由文件创建”方式,则需要单击“浏览”按钮,打开“浏览”对话框,在对话框中定位需要插入的OLE对象文件,具体的操作过程如图3-18所示。

图3-18 插入对象的操作过程

注意:在数据表中插入OLE对象,如果该对象是新建的,则新建的对象一定是嵌入在数据表中的;如果对象是由已存在的文件创建的,则该文件可以嵌入到数据库中,也可采用链接的方式,对象文件仍然保存在原来的位置,而数据库中只保存该文件的访问路径。此方式的优点是如果要插入的对象文件太多太大时,嵌入方式会使数据库文件变得很大,而链接就不会有太大的影响,但如果对象文件是链接的方式,则必须保证对象文件的位置不变,否则再打开数据表时会造成数据的错误,相关对象访问不到。

2.修改数据

数据表中数据的修改必须在数据表视图下完成。

(1)增加记录

新记录只能在原有记录的尾部添加。将鼠标指针移至记录的新记录行,或在任意记录的行选择按钮上右击,在弹出的快捷菜单中选择“新记录”命令,插入光标自动转到新记录的第一个字段处,即可开始新记录的输入。

注意:在增加记录时,如果表中存在关键字段,则关键字段不能为空或出现重复值,否则系统不允许增加新记录。如果发生此种情况,则必须仔细查看相关的数据,以保证关键字段的值符合要求。另外,如果在关系中创建参照完整性,则主表和子表数据的输入和删除均会受到参照完整性的约束,输入的数据符合参照完整性规则的要求。

(2)删除记录

选中要删除的一条或多条记录,在选中区域上右击,在弹出的快捷菜单中选择“删除记录”命令,屏幕出现提示信息要求确认删除操作时,单击“确定”按钮,即可删除选中的记录,单击“取消”按钮,则取消删除操作。

(3)修改单元格中的数据

要修改某个单元格中的数据,将鼠标指针指向该单元格边框,鼠标指针为空心十字形状时,单击选中该单元格,输入新的数据,则原有数据被新数据覆盖。

如要修改单元格中数据的部分内容,将鼠标指针指向要修改内容的单元格,鼠标指针显示为空心箭头时,单击单元格,将光标置于要修改的位置,即可开始进行内容的修改。

注意:当状态栏右侧显示“OVR”时,表示当前状态为“改写”状态,插入光标显示为一个小黑块,此时输入内容时会自动覆盖原单元格中的内容;按〈Insert〉键,则“OVR”消失,当前状态为插入状态,插入光标显示为竖线,此时输入的内容将插入到光标位置。

当修改数据后,如果要撤销所做的修改,可有如下几种情况。

1)如果修改数据后插入光标尚未移到其他单元格,则按〈Esc〉键或单击快速访问工具栏的“撤销”按钮,可撤销对当前单元格的修改。

2)若对当前记录的字段值(一个或多个)修改后,光标已经移到同一记录的其他字段,但尚未修改,也可选择“撤销”命令来撤销修改操作。如果修改了多个字段的值,可通过多次撤销操作来取消修改。

3)若对当前记录修改后已经保存了数据表,但尚未对其他记录进行修改,也可利用撤销操作来取消修改。但如果又对其他记录进行了修改或编辑,则前一条记录的修改就不能被撤销。

3.获取外部数据

Access在输入数据时,可以从其他已存在的数据文件中获取数据,操作方式与利用外部数据创建表的方式是相同的,只是在“选择数据源和目标”时,选择“向表中追加一份记录的副本”选项,并选中目标表,即可完成数据的导入操作。

3.3.6 创建索引与主键

通常,一个数据库系统中含有多个表,为了把不同表的数据组合在一起,必须建立表间的关系。在建立表间关系时,首先要对表间联系的字段建立索引和关键字。

1.索引

索引是按索引字段或索引字段集的值使表中的记录有序排列的方法。索引有助于快速查找记录和排序记录。

Access在数据表中要查找某个数据时,先在索引中找到该数据的位置,即可在数据表中访问到相应的记录。Access可建立单个字段索引或多个字段索引。多字段索引能够区分开第一个字段值相同的记录。

在数据表中通常对经常要搜索的字段、要排序的字段或要在查询中连接到其他表中的字段(外键)建立索引。

注意:索引可以提高数据查询的速度,但当数据表中记录更新时,由于已建立索引的字段的索引需要更新,所以索引会降低数据更新的速度。

对于Access数据表中的字段,如符合下列所有条件,可以考虑建立索引。

● 字段的数据类型为文本型、数字型、货币型或日期/时间型。

● 常用于查询的字段。

● 常用于排序的字段。

注意:数据表中OLE对象类型字段不能创建索引。多字段索引最多允许有10个字段。

(1)单字段索引

字段属性列表中有一个“索引”属性,设置为“有(有重复)”和“有(无重复)”,则该字段就设置了索引。“有(有重复)”即为该字段的值将进行索引,允许在同一个表中有重复值出现;“有(无重复)”即为该字段的值将进行索引,不允许在同一个表出现两个或两个以上的记录的值相同,通常是主键或候选关键字才会设置该索引方式。

(2)多字段索引

如果经常需要同时搜索或排序两个或更多个字段,可以为该字段组合创建索引。在使用多字段索引排序表时,Access将首先使用定义在索引中的第一个字段进行排序。如果在第一个字段中出现有重复值的记录,则会用索引中定义的第二个字段进行排序,以此类推。

多字段索引的操作方式是在表设计视图中,单击“设计”选项卡的“显示/隐藏”组的“索引”按钮,打开“索引”对话框,如图3-19所示。在“索引”对话框中既可设置多字段的索引,也可设置单字段索引。在对话框中可对索引的“排序次序”进行设置,选择“升序”和“降序”两种方式,再在“索引属性”中对当前设的索引属性进行设置,这里设置为主索引,即单击“主索引”右侧的文本框,单击出现的下拉列表,在下拉列表中选中“是”,即当前的索引被定义为多字段主键,系统自动定义其属性为唯一索引且不能为空。

图3-19 “索引”对话框

注意:在表设计器视图下,通过字段属性设置单字段索引时,不能对索引的次序进行设置,只能是默认的“升序”。

2.主键

在数据表中能够唯一确定每个记录的一个字段或字段集称为表的主键。主键可以保证关系的实体完整性。一个数据表中只能有一个主键。Access中可以定义3种主键。

(1)“自动编号”主键

每当向表中添加一条记录时,可将“自动编号”字段设置为自动输入连续数字的编号。如果在保存新建的表之前未设置主键,则Access会询问是否要创建主键。如果回答为“是”,将创建“自动编号”主键。

(2)单字段主键

如果字段中包含的都是唯一的值,例如学号或部件号码,则可以将该字段指定为主键。只要某字段包含数据,且不包含重复值或Null值,就可以将该字段指定为主键。

“单字段”主键的设置可在“表设计器”视图下,将要设置为主键的字段选中,单击“设计”选项卡“工具”组的“主键”按钮,字段选择器上出现标识,则该字段被设置为主键。

(3)“多字段”主键

Access支持将两个或更多字段的组合指定为主键。在多字段主键中,字段的顺序非常重要。多字段主键中字段的次序按照它们在表“设计”视图中的顺序排列。如果需要改变顺序,可以在“索引”窗口中更改主键字段的顺序。

多字段主键的设置可在“索引”对话框中进行设置,也可在表的设计视图中,选中要成为主键的所有字段,再单击工具栏中的“主键”按钮,选中字段的字段选择器上将出现标识时,则多字段主键设置完成。

多字段选择的方式:连续的字段,可单击第一个字段选择器,按住〈Shift〉键再单击最后一个字段的记录选择器,则连续的多字段变黑,表示被选中;如果要选择不连续的多个字段,可先选中第一个字段,按住〈Ctrl〉键再单击各个要选中字段的字段选择器,要选中的字段均会加亮显示。

3.3.7 建立表之间的关系

在Access中,要想管理和使用好表中的数据,就应建立表与表之间的关系,这样才能将不同的数据表关联起来,为后面的数据查询、窗体和报表等建立数据基础。

1.数据表间关系

在Access中创建的数据表是相互独立的,每一个表都有一个主题,是针对对象的不同特点和主题而设计的,同时它们又存在一定的关系。例如,学生管理数据库中,在不同的表中有相同的字段名存在。如学生基本情况表“student”中有“学号”字段,在学生成绩表“grade”中也存在“学号”字段,通过这个字段,可以将学生表与成绩表联系起来,从而找到需要的相关数据。

在Access中,表和表之间的关系主要有两种:“一对一”和“一对多”。如果在两个表中建立联系的字段均不是主键时,此时创建的关系类型将显示为未定。

在实际使用时,常将多对多的表拆分成两个或多个一对多的关系,以方便数据的查询和使用。

2.建立表之间的关系

关系是参照两个表之间的公共字段建立起来的。在“关系”面板中创建的关系是永久关系。通常情况下,如果一个表的主关键字与另一个表的外键之间建立联系,就构成了这两个表之间的“一对多”的关系。如果建立关系的两个表的公共字段均为两个表的主关键字段时,则这两个表之间的关系则为“一对一”的关系。在建立表之间的关系时,存在主表与相关表两种情况。一对多的关系通常是一端为主表,多端为相关表,如“student”和“grade”建立一对多的关系,“student”为主表,“grade”为相关表;一对一的关系,通常会以主体表作为主表,派生表为辅助表,如教师基本信息表“teacher”和工资表“salary”,这两个表的主关键字均为“教师编号”,建立一对一的关系,应以“teacher”为主表,“salary”为相关表。

建立数据表之间的关系是在数据库的“关系”面板中实现的。操作步骤如下。

1)建立主关键字,对要建立关系的数据表建立主关键字。

2)将要建立关系的数据表添加到“关系”窗口中,即通过“数据库工具”选项卡的“关系”组的“关系”按钮,打开“关系”窗口。如果数据库中尚未定义过关系,则会自动弹出“显示表”对话框,在“表”选项卡中会显示本数据库中存在的所有数据表,将需要建立关系的数据表选中,单击“添加”按钮则将其添加到“关系”窗口中;也可在“显示表”窗口中双击要添加的数据表,即可将该表添加到“关系”窗口中。

如果数据库中曾经打开过“关系”窗口进行关系设置,则系统不会自动弹出“显示表”对话框,此时,在“关系”窗口中右击,在弹出的快捷菜单中选择“显示表”命令,也可打开“显示表”对话框。如果不小心将一个表多次添加到“关系”窗口,则该表会在窗口中多次显示,同时在表名后自动产生序号1、2、…。要删除多选的表,可在窗口中单击选中该表,按〈Delete〉键即可删除。

3)创建关系。

将鼠标指针置于主表的联系字段,按住鼠标左键,并拖到相关表的对应字段上,松开鼠标左键,将弹出“编辑关系”对话框,在对话框中将显示建立关系的两个表的联系字段,同时在下方显示这两个表的关系类型,如果正确无误,则单击“创建”按钮,“关系”窗口中两个表之间将出现一条连线。

注意:在建立关系时,一定要从主表的关键字段拖到相关表的对应字段。即创建关系时,要求从主表拖动联系字段到相关表。

具体操作如图3-20所示。

图3-20 创建“关系”的操作方法

关系创建完成后,需要保存并关闭“关系”窗口,此时已经建立好的关系会保存在数据库中。

当两个表建立了关系后,打开“数据表”窗口,在每条记录的“记录选定器”右侧都可以看到符号,单击符号会变成符号,同时展开子数据表,子数据表中显示的是与当前表的当前记录相匹配的记录。因为“student”与“grade”是“一对多”的关系,因此,在子表中可以看到多条记录相匹配,如图3-21所示。

图3-21 建立关系的数据表

单击符号,子数据表被关闭。如果选中多条记录,单击符号,则显示所有选定记录的子数据表。

3.修改或删除关系

(1)修改关系

关系创建完毕后,如果发现关系设定错误或未实施参照完整性,则需要对已经设定好的关系进行修改。在修改前需要先关闭数据表,双击关系连线,即可弹出“编辑关系”对话框,在对话框中对关系进行修改,修改完成后单击“确定”按钮,完成关系的修改。

(2)删除关系

当关系建立好以后发现错误时,可单击连线,当连线变粗时表示选中,按〈Delete〉键即可删除关系,在删除时系统会弹出对话框提示:“确实要从数据库中永久删除选定的关系吗?”单击“确定”按钮,即可删除关系。此时,关系窗口中的连线也就自动消失。

4.参照完整性与相关规则

在数据表的关系建立以后,通常希望数据表之间存在一定的约束关系,以保证数据库中数据的有效性。在Access中可以建立参照完整性来保证主表与相关表在增、删、改记录时相关字段数据的正确性。

数据表之间的约束性规则包括如下3种情况。

(1)建立关系后未实施参照完整性

在主表中增加、删除、修改关联字段的值时不受限制;同样,相关表中进行相同的操作时也不受影响。

(2)建立参照完整性但未实施级联更新和级联删除规则

在主表中增加记录不受限制;修改记录时,若该记录在表中有匹配记录,则不允许修改;删除记录时,若该记录在表中有匹配记录,则不允许删除。

在相关表中,增加或修改记录时,关联字段的值必须在主表中存在;删除记录时不受影响。

(3)建立参照完整性并实施了级联更新和级联删除规则

在主表中增加记录不受限制;修改记录时,若该记录在相关表中有匹配记录,若修改关联字段的值,则匹配记录的关联字段的值自动修改;删除记录时,若该记录在相关表中有匹配记录,则匹配记录同时被删除。

在相关表中,增加或修改记录时,关联字段的值必须在主表中存在;删除记录时不受影响。

关系的参照完整性的设置方法是在“编辑关系”对话框中,选中“实施参照完整性”复选框,需要实施相关规则,则可选中相应的规则,不需要实施规则,即可单击“创建”按钮即可创建关系。当表与表之间创建了关系并实施了参照完整性后,则数据表之间连线的两头会显示关系的方式,“1”表示是一方,“∞”表示多方。如果未实施参照完整性,则连线的两头不会有“1”或“∞”出现,如图3-22所示。

图3-22 “学生管理”数据库关系图

注意:在创建关系时,如果连接两个表的关联字段均不是主关键字或唯一索引,则在“编辑关系”对话框中显示的关系类型就是“未定”,这种情况下是不能实施参照完整性的;当相关表中关联字段的值在主表中找不到对应的记录与之相匹配时,参照完整性也不能实现。此时,必须要查看是数据错误还是主表与相关表反了。