4.1 设置主键

主键是表中的一个字段或字段集,可为每条记录提供一个唯一的标识符。用户可以在【设计】视图中对主键进行添加、设置和删除等一系列的设置操作。

4.1.1 主键概述

在操作主键之前,需要先了解什么是主键、好坏主键的区别以及重要主键。

1. 了解主键

在数据库中,先将信息分成不同的、基于主题的表。然后,使用表关系和主键以指示Access将信息再次组合起来。

Access使用主键字段将多个表中的数据迅速关联起来,并以一种有意义的方式将这些数据组合在一起。

在某一表中,可以包含其他表中的主键字段以向回引用主键的源表。而其他表中的这些主键字段则被称为外键。

例如,“客户”表中的【客户ID】字段也可能会显示在“订单”表中。在“客户”表中它是主键,而在“订单”表中它为外键。简而言之,外键就是另一个表的主键。

如果将现有数据移到数据库中,用户可能已经拥有了可用作主键的字段。

通常情况下,会使用唯一的标识号(如ID号、序列号、编码或代码)充当表中的主键。例如,在“客户”表中,由于每个客户都具有唯一的ID编号,因此可用客户ID字段作为主键。

2. 好和坏主键的区别

一个好的主键应具有以下3个特征:


□ 唯一标识每一行。

□ 从不为空或为Null,即它始终包含一个值。

□ 所包含的值几乎不(理想情况下永不)改变。


而缺少一个或多个上述特征的任何主键都是坏主键,下面是4个坏主键的实例。


□ 个人姓名。因为该类型的字段不仅不是唯一的值,而且还会随时被更改,因此将该类型的字段作为主键将是一个错误的选择。

□ 电话号码。由于该类型的字段具有可变性,因此不适合作为主键。

□ 电子邮件地址。该类型的字段虽然没有重复性,但字段内容可能会被改变,因此也不适合作为主键。

□ 事实和数字的组合。这种组合难以保留,如果事实部分作为单独的字段进行重复,则可能会导致混乱,例如包含城市和递增号码的字段(如NEWYORK0579)。


3. 需要主键的表

在Access中,应该始终为表指定一个主键。当然,Access会自动为主键创建索引,这有助于加快查询和其他操作的速度。

Access还确保每条记录的主键字段中都有一个值,并且该值始终是唯一的。

在【数据表】视图中创建新表时,Access会自动创建主键,并且为它指定字段名ID和“自动编号”数据类型。默认情况下,该字段在【数据表】视图中为隐藏状态,但切换到【设计】视图中时,则会显示该字段。

提示

如果一个表没有好的候选主键,则可以考虑添加一个具有【自动编号】数据类型的字段,并将该字段作为主键。

在某些情况下,用户可能想使用两个或多个字段一起作为表的主键。例如,在“订单”表中,将【订单ID】和【产品ID】字段同时作为主键。而当一个主键使用多个列时,它又被称为复合键。

4.1.2 添加主键

一般情况下,用户可通过下列两种方法向表中添加自动编号的主键。

1. 自动创建法

在【数据表】视图中,当用户创建新表时,Access会自动创建一个ID字段,并将该字段指定为【自动编号】数据类型。

2. 添加或修改法

在【导航】窗格中,右击表名称,执行【设计视图】命令,在【设计】视图中打开该表。

然后,在【字段名称】列中输入字段名称,单击【数据类型】列中的下拉按钮,选择【自动编号】选项。同时,在【常规】选项卡中,将【新值】设置为“递增”或“随机”。

此时,代表字段的内容将对主键以递增或者随机的方式添加新值。

3. 设置法

如果在现有的表中每条记录都有一个唯一的标识号(如ID号、序列号或编码等),则该字段可以作为该表的主键。要使主键正常工作,该字段必须唯一标识每一行,不包含空值和Null值,并且很少(理想情况下永不)改变。

在数据表中,右击【导航】窗格中的表名称,执行【设计视图】命令。然后,选择用作主键的一个或多个字段,执行【表格工具】|【设计】|【工具】|【主键】命令,将该字段设置为主键。

提示

需要选择多个字段时,则需要按住Ctrl键的同时单击多个字段的行标识。

将字段设置为主键之后,在该字段对应的行标识处会显示一个与【主键】命令相同的图标,即“键指示器”图标。

当然,用户也可以右击行标识,执行【主键】命令,将该字段设置为主键。

4.1.3 编辑主键

添加主键之后,为保证表之间的关联性,还需要对主键进行删除或更改等编辑操作。

1. 删除主键

删除主键时,以前作为主键的一个或多个字段将不再作为标识记录的主要方式。但是删除主键不会删除表中的一个或多个字段,所删除的只不过是这些字段的主键指定。

首先,在【设计】视图中打开包含主键的表,选择已添加主键的字段,执行【表格工具】|【设计】|【工具】|【主键】命令,即可删除主键。

提示

在删除主键之前,需要确保它没有参与任何表关系,否则系统会警告必须先删除这些关系才能删除该主键。

另外,右击包含主键字段的行标识,执行【主键】命令,也可删除该字段中的主键。

2. 更改主键

更改主键是更改主键所依附的字段,也就是说先删除当前字段的主键,并为另外一个字段设置主键。

在【设计】视图中,选择包含主键的字段,右击行标识,执行【主键】命令,删除该字段中的主键。

然后,选择其他字段,右击行标识,执行【主键】命令,为该字段添加主键。

技巧

也可以直接选择一个不包含主键的字段,右击行标识,执行【主键】命令,即可在删除原字段主键的同时为该字段添加主键。