主键是一个字段或一组字段,其值在整个表中是唯一的。 可以使用键的值引用整个记录,因为每个记录的键值不同。 每个表只能有一个主键。 Access 可以在创建表时自动创建主键字段,也可以指定要用作主键的字段。 本文介绍使用主键的方式及原因。
若要设置表的主键,请在“设计”视图中打开表。 选择要使用的字段 (或) 字段,然后在功能区上选择“主键”。
本文内容
Access 中的主键概述
Access 使用主键字段快速关联多个表中的数据,并用有意义的方式合并这些数据。 可以包含其他表中的主键字段以向回引用主键源的表。 在这些其他表中,字段称为外键。 例如,“客户”表中的“客户 ID”字段也可能会显示在“订单”表中。 在“客户”表中,它是主键。 而在“订单”表中,它被称作外键。 简而言之,外键就是另一个表的主键。 有关详细信息,请参阅数据库设计基础。
1. 主键
2. 外键
如果要将现有数据移动到数据库中,则可能已有一个字段,可以将该字段用作主键。 通常,唯一的标识号(如 ID 号、序列号或代码)充当表中的主键。 例如,您可能有一个“客户”表,其中每个客户都有一个唯一的客户 ID 号。 客户 ID 字段是主键。
Access 自动为主键创建索引,这有助于加快查询和其他作的速度。 Access 还确保每条记录在主键字段中都有一个值,并且始终是唯一的。
在数据表视图中创建新表时, Access 会自动创建主键,并为其分配字段名称“ID”和“自动编号”数据类型。
什么是好的主键?
一个好的候选主键具有以下几个特征:
-
它唯一标识每一行。
-
它从不为空或 null - 它始终包含值。
-
理想情况下,它所包含的值很少 (,永远不会) 更改。
如果无法识别正确的密钥,请创建要用作密钥的“自动编号”字段。 “自动编号”字段在首次保存每条记录时,会自动为自己生成一个值。 因此,“自动编号”字段满足一个好的主键的所有三个特征。 有关添加自动编号字段的详细信息,请参阅添加自动编号字段作为主键。
“自动编号”字段是一个好的主键。
较差主键的示例
缺少一个或多个好的候选主键特征的任何字段对于主键都是糟糕的选择。 下面是会让“联系人”表的主键成为较差主键的几个字段示例,以及成为糟糕选择的原因。
|
较差主键 |
原因 |
|---|---|
|
个人姓名 |
可能不确定唯一,还可能改变 |
|
电话号码 |
可能会改变。 |
|
电子邮件地址 |
可能会改变。 |
|
邮政编码 |
可能多人共享一个邮政编码 |
|
事实和数字的组合 |
事实部分可能有所变化,带来维护负担。 如果事实部分作为单独字段重复,则可能导致混乱。 例如,将城市和增量号码(例如 NEWYORK0579)组合在一起,如果城市也存储为字段,则是糟糕的选择。 |
|
社会保障号 |
|
复合键:将多个字段组合在一起作为主键使用
某些情况下,你希望将表中的两个或多个字段用作主键。 例如,存储订单行项目的“订单明细”表可能在其主键中使用两个字段:“订单 ID”和“产品 ID”。 具有多个字段的键称为组合键。
使用 Access 中已有的字段设置主键
要使主键正常工作,该字段必须唯一标识每一行,决不包含空值或 Null 值,并且很少(理想情况下永不)改变。 要设置主键,请执行下列操作:
-
打开要修改的数据库。
-
在导航窗格中,右键单击要在其中设置主键的表,然后在快捷菜单上选择“设计视图”。
提示: 如果未显示导航窗格,请按 F11 显示导航窗格。
-
选择要用作主键的一个或多个字段。
若要选择一个字段,请选择所需字段的行选择器。
若要选择多个字段以创建复合键,请按住 Ctrl,然后选择每个字段的行选择器。
-
在“ 表设计 ”选项卡上的“ 工具 ”组中,选择“主键”。
将键指示器添加到指定为主键的一个或多个字段的左侧。
删除 Access 中的主键
删除主键时,以前作为主键的一个或多个字段将不再作为标识记录的主要方式。
删除主键不会从表中删除字段,但会删除为主键创建的索引。
-
删除主键前,必须确保它没有参与任何表关系。 如果尝试删除属于一个或多个关系的主键, Access 会警告必须首先删除这些关系。要删除表关系,请执行以下步骤:
-
如果参与表关系的表处于打开状态,请关闭它们。 不能删除打开的表之间的表关系。
-
在“ 数据库工具 ”选项卡上的“ 关系” 组中,选择“关系”。
-
选择“ 添加表”。
-
选择要删除的表关系的表关系线, () 选中该行时该行变为粗体,然后按 DELETE 键。
-
在“ 关系设计 ”选项卡上的“ 关系” 组中,单击“ 关闭”。
-
-
删除关系后,在导航窗格中,右键单击要从中删除主键的表,然后选择“设计视图”。
提示: 如果未显示导航窗格,请按 F11 显示导航窗格。
-
选择当前主键的行选择器。
如果主键包含单个字段,请选择该字段的行选择器。
如果主键包含多个字段,请为主键中的任何字段选择行选择器。
-
在“ 表设计 ”选项卡上的“ 工具 ”组中,选择“主键”。
以前指定为主键的一个或多个字段中的键指示器被删除。
注意: 如果在未设置主键的情况下保存新表, Access 会提示创建一个表。 如果选择“ 是”, Access 将创建一个 ID 字段,该字段使用自动编号数据类型为每个记录提供唯一值。 如果表已包含“自动编号”字段, Access 使用该字段作为主键。
更改 Access 中的主键
如果决定更改表的主键,则可以通过执行下列步骤来完成:
其他信息
有关数据库设计和选择适当主键的详细信息,请参阅文章: