- Access 2016数据库管
- 杨继萍
- 2057字
- 2025-03-01 07:21:23
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. 更改主键
更改主键是更改主键所依附的字段,也就是说先删除当前字段的主键,并为另外一个字段设置主键。
在【设计】视图中,选择包含主键的字段,右击行标识,执行【主键】命令,删除该字段中的主键。

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

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