首页 理论教育 SQLServer2008数据库应用指南:外键约束

SQLServer2008数据库应用指南:外键约束

时间:2023-11-02 理论教育 版权反馈
【摘要】:外键约束属于参照完整性。外键约束的主要特征如下:√ 一旦FOREIGN KEY定义了某个字段,则该字段的取值必须参照同一表或另一表中PRIMARY KEY约束或者UNIQUE约束。√ FOREIGN KEY约束不能自动建立索引。外键约束的语法规则如示例代码3-27所示。[ON DELETE]选项是设置,当引用表中具有外键约束的行被删除时,系统所作的处理。我们从图3-12中看到定义了一个外键约束,其名称为FK_orders_customer,被引用的主键表和列为customer.CusID,建立外键的表和列为orders.CusID。

SQLServer2008数据库应用指南:外键约束

外键约束属于参照完整性。

外键约束也称为FORERIGN KEY约束,是指一个表(或从表)的一个列或列组合,它的取值必须参照另外一个表的主键或唯一性键值。外键的值要么为空(NULL),要么是引用表的某个主键或唯一性键值。在创建表时通过FORELGN KEY关键字完成定义。例如,对于公司管理系统中部门表和员工表,员工必然属于某个部门或不属于任何一个部门,如果员工属于某个部门,那么员工表的部门号应该在部门表中存在,即参照部门表的部门号。而部门号字段在部门表中是主键。外键约束的主要特征如下:

√ 一旦FOREIGN KEY定义了某个字段,则该字段的取值必须参照同一表或另一表中PRIMARY KEY约束或者UNIQUE约束。

√ FOREIGN KEY约束不能自动建立索引

外键约束的语法规则如示例代码3-27所示。

其中<列表名1>列出的是要进行外键约束的列组合中的所有列,在作为列级约束时可以省略;(列表名2)列出的是引用表中相应的主键和唯一性键的所有列,如果每个列名都与<列表名1>中的列名相同,则可以省略。

[ON DELETE]选项是设置,当引用表中具有外键约束的行被删除时,系统所作的处理。有三种可能的处理方式:

√ 使用选项RESTRICT,是缺省选项,引用表中凡是被子表所引用的行都不准删除。

√ 使用选项CASCADE,表中所有引用了引用表中被删除的行的行,也随之被剔除。

√ 使用SET NULL,外键的值被设置成空值(NULL)。(www.xing528.com)

假如,我们需要创建电子商城购物系统中的订单数据库表,该表中有一字段CusID(客户代码),该字段通过建立外键与customer数据库表主键(CusID)关联,我们可以通过如下方法建立外键。

1.使T-SQL语句在定义表时创建外键约束(示例代码3-28)

2.使用Microsoft SQL Server Management Studio工具创建外键

使用Microsoft SQL Server Management Studio工具在创建数据库时,或对数据库表作修改时,可以设置和改变属性列是否建立外键。我们进入建立或修改数据库表界面,然后在建立或修改数据库表orders的时候选中CusID字段,然后鼠标右击该行,此时弹出菜单,从菜单中选择“关系”,然后入“外键关系”界面,如图3-11所示

我们可以从该界面“添加”或“删除”外键。鼠标点击界面的右半部分的“常规”目录下的“表和列规范”的右边窗格,弹出外键关系设置来建立外键。如图3-12所示。

我们从图3-12中看到定义了一个外键约束,其名称为FK_orders_customer,被引用的主键表和列为customer.CusID,建立外键的表和列为orders.CusID。最后只要按“确定”退出界面即可,当“当保存”创建或修改的表的时候所建立的外键也被保存了。

图3-11 外键关系界面

图3-12 表和列界面

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈