所以你已经从电子表格转移到了数据库。您已经设置了表格,并精心转移了所有宝贵的数据。你可以休息一下,坐下来看看你创造的桌子。等一下 - 他们看起来对你刚刚否认的电子表格非常熟悉。你刚刚重新发明轮子了吗?无论如何,电子表格和数据库之间有什么区别?
Microsoft Access等数据库的主要优点之一是它们能够维护不同数据表之间的关系。数据库的强大功能使得以多种方式关联数据并确保一致性(或 参照完整性 )从表到表的这些数据。在本文中,我们将介绍使用Microsoft Access数据库创建简单关系的过程。
想象一下我们为Acme Widget公司创建的一个小型数据库。我们希望跟踪员工和客户订单。我们可能会使用包含一个员工表的表,其中包含以下字段:
- 员工ID(主键)
- 名字
- 姓
- 延期
- 薪水
- 经理
然后,我们可能会有第二个表格,其中包含我们员工的订单。订单表可能包含以下字段:
- 订单ID(主键)
- 顾客ID
- 员工ID
- 物品ID
- 数量
请注意,每个订单都与特定员工相关联。此信息重叠表示使用数据库关系的完美情况。我们将一起创建一个外键关系,指示数据库中Orders表中的EmployeeID列对应Employees表中的EmployeeID列。
建立关系后,我们在Microsoft Access中发布了一组功能强大的功能。数据库将确保只能在Orders表中插入与有效员工相对应的值(如Employees表中所列)。此外,当从Employees表中删除员工时,我们可以选择指示数据库删除与员工关联的所有订单。
以下是我们如何在Access 2013中创建关系:
- 从功能区上的“数据库工具”选项卡中,单击“关系”。
- 突出显示要作为关系一部分的第一个表(Employees),然后单击“添加”。
- 对第二个表(Orders)重复步骤2。
- 单击关闭按钮。您现在应该在Relationships窗口中看到两个表。
- 单击功能区中的“编辑关系”按钮。
- 单击“新建”按钮。
- 在“新建”窗口中,选择“员工”作为“左表名称”,选择“订单”作为“右表名称”。
- 选择EmployeeID作为左列名称和右列名称。
- 单击“确定”关闭“新建”窗口。
- 使用“编辑关系”窗口中的复选框选择是否强制执行参照完整性。在大多数情况下,您需要选择此选项。这是关系的真正威力 - 它确保Orders表中的新记录仅包含Employees表中有效员工的ID。
- 您还会注意到其他两个选项。 “级联更新相关字段”选项可确保如果Employees表中的EmployeeID更改将更改传播到Orders表中的所有相关记录。同样,“Cascade Delete Related Records”选项会在删除Employee记录时删除所有相关的Orders记录。这些选项的使用取决于数据库的特定要求。在这个例子中,我们将不会使用任何一个。
- 单击“加入类型”以查看可用的三个选项。如果您熟悉SQL,您可能会注意到第一个选项对应于内连接,第二个选项对应于左外连接,最后一个选项对应于右外连接。我们将使用内连接作为示例。
-
- 仅包括两个表中的连接字段相等的行。
-
- 包括来自“员工”的所有记录,以及仅包含联合字段相等的“订单”中的记录。
- 包括“订单”中的所有记录,以及仅包含联合字段相同的“员工”的记录。
- 单击“确定”关闭“连接属性”窗口。
- 单击“创建”以关闭“编辑关系”窗口。
- 您现在应该看到一个显示两个表之间关系的图表。