在Access数据库中,一个数据库中往往有多个表,这些表多是有关联的,即表与表之间是有关系的。表之间的关系如1.2节所述,分为一对一、一对多和多对多的关系,在Access数据库中大多为一对多的关系。
如1.4.1节所述,通过外键让表与表之间产生了联系,在一对多关系中,考虑主键和外键的取值。主键保证了表中记录的唯一性,主键的特点是既不能重复,又不能为空;外键的特点是取值可以为空,或者是参照表中的有效值。
以外部关键字作主关键字的表称为参照关系(主表、父表),具有外部关键字的表称为被参照关系(从表、子表),如图3-131和图3-132所示。
图3-131 班级表
图3-132 学生表
在图3-132中“学号”是“学生表”中的主键,“班级编号”是外键,而“班级编号”是图3-131班级表中的主键,“班级表”叫作主表、父表、参照关系;“学生表”叫从表、子表、被参照关系。
建立表间关系应遵循实施参照完整性,若表中已有数据,只有表中数据满足条件“在从表的外键字段中,除空值外,不能出现主表的主键字段中不存在的数据”时才可设置“参照完整性”规则,否则系统提示无法设置。因此,通常在表中输入数据前先设置表间关系,以防止输入的数据不满足“参照完整性”规则。
在建立表间关系时,主表和从表的数据应遵循下列规则:
(1)在从表的外键字段中,除空值外不能出现主表的主键字段中不存在的数据,即参照完整性;
(2)如果在从表中存在匹配的记录,不能只删除主表中的记录;
(3)如果在从表中存在匹配的记录,不能只修改主表中的主键值。
例3-41 在“教学信息管理”数据窗口中,建立各表之间的关系。
操作步骤:
(1)打开“教学信息管理”数据库。单击“数据库工具”→“关系”按钮,弹出“关系工具”选项卡及设计区域,如图3-133所示。
(2)单击或在下的灰色区域单击右键,在快捷菜单中选择“显示表”,弹出如图3-134所示的“显示表”界面。
图3-133 关系设计界面
图3-134 “显示表”界面
(3)选中要创建关系的表,单击“添加”,可以选中表,按住左键拖动调整位置,如图3-135所示。
图3-135 添加表
(4)找到表中的公共属性,即两个表里都有的属性,如“班级表”和“学生表”里的公共属性“班级编号”,按住其中之一的“班级编号”拖动到另一个表中。
(5)弹出“编辑关系”对话框,如图3-136所示,选择“实施参照完整性”“级联更新相关字段”和“级联删除相关记录”,出现一根连线,连线两端分别有符号“1”和“∞”,说明两表之间的关系是一对多的关系,在对话框下边显示“关系类型:一对多”,单击“创建”,即创建了“班级表”与“学生表”之间的“一对多”关系,如图3-137所示。
图3-136 “编辑关系”对话框
图3-137 班级表与学生表之间的一对多关系(www.xing528.com)
(6)同理创建其他表之间的关系,如图3-138所示。
图3-138 表间关系
补充说明:
(1)删除关系。
若要删除表间关系,单击两表之间的连接线,当线变粗变黑时,即为选中了该线(关系),单击右键,弹出快捷菜单,单击“删除”;或者选中连线后,直接按“Delete”键。
(2)编辑关系。
如果需要重新编辑关系,在“关系”图中选择两表之间的连接线,线条变粗,再右击,执行“编辑关系”命令。
在图3-136的“编辑关系”对话框中,分别有:
① 实施参照完整性。
Access使用实施参照完整性来确保相关表记录之间关系的完整性与有效性。
在创建关系时,在选择“实施参照完整性”复选框中单击,显示为“√”,即可为该关系创建了“实施参照完整性”规则。
② 级联更新相关字段。
当选中该项后主表中主键值更新时,系统会自动更新从表中的所有相关记录中的匹配值。
③ 级联删除相关记录。
选中该项后在删除主表中的记录时,系统会自动删除从表中的相关记录。
(3)联接属性。
在图3-136的“编辑关系”对话框中,单击“联接类型”,弹出“联接属性”对话框,如图3-139所示。对话框中共有3个选项,分别表示3种联接:自然连接、左联接和右联接。
图3-139 “联接属性”对话框
(4)新建关系。
在图3-136的“编辑关系”对话框中,单击“新建”,弹出如图3-140所示的“新建”对话框,在此也可设定表及连接字段并创建关系。
图3-140 “新建”对话框
单击“确定”,若表中关系已经确定,提示“关系已经创建”;若表中关系未创建,即可创建关系。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。