文档详情

数据完整性之参照完整性的实现.ppt

发布:2017-06-14约1.68千字共11页下载文档
文本预览下载声明
欢迎进入 参照完整性的实现 关系图 1.使用企业管理器定义表间的参照关系 例如要建立XSDA表与XSCJ表之间的参照关系,操作步骤如下: (1)首先定义主表的主键,在此定义XSDA表中学号字段为主键。 (2)利用“关系图”或“表设计器—属性—关系”定义从表外键 应用1:当向从表中添加学生时,自动检查主表中是否存在此记录。若存在,允许添加;否则,不允许。 应用2:选择“对INSERT和UPDATE强制关系”复选框,若在主表中删除、修改记录,从表中记录也相应被删除、修改;若在从表中删除记录,主表中记录不变;不允许修改从表中的外键。 2.使用企业管理器删除表间的参照关系 外键约束 3.使用T-SQL语句定义表间的参照关系 先定义主表主键(或唯一键),再对从表定义外键约束。 (1)创建表的同时定义外键约束 CREATE TABLE 表名 /*指定表名 (字段名 数据类型 FOREIGN KEY REFERENCES 主表 (主键) [,…n]) /*n表示可定义多个字段 说明: FOREIGN KEY关键字指明该字段为外键, 课外阅读: 【例】在XS数据库中创建主表XSDA1,定义XSDA1.学号为主键,然后创建从表XSCJ1,定义XSCJ1.学号为外键。 --定义主键 USE XS CREATE TABLE XSDA1 ( 学号 char(6) NOT NULL CONSTRAINT xh_pk PRIMARY KEY, 姓名 char(8) NOT NULL, 性别 bit NOT NULL , 系名 char(10) NOT NULL, 出生日期 smalldatetime NOT NULL, 民族 char(4) NOT NULL, 总学分 tinyint NULL, 备注 text NULL ) GO --定义外键 CREATE TABLE XSCJ1 ( 学号 char(6) NOT NULL FOREIGN KEY REFERENCES XSDA(学号), 课程编号 char(3) NOT NULL, 成绩 tinyint )(课外阅读:) 外键约束 【例】 假设XS数据库中KCXX表为主表,KCXX.课程编号字段已经定义为主键,XSCJ表为从表,要求将XSCJ.课程编号字段定义为外键。 USE XS ALTER TABLE XSCJ ADD CONSTRAINT kc_foreign FOREIGN KEY(课程编号) REFERENCES KCXX(课程编号) GO 外键约束 4.使用T-SQL语句删除表间的参照关系 删除表间的参照关系,实际上删除从表的外键约束即可。 当PRIMARY KEY约束由另一表的FOREIGN KEY约束引用时,不能删除被引用的PRIMARY KEY约束,要删除它,必须先删除引用的FOREIGN KEY约束。 课外阅读: 本节就先介绍到这,大家要及时复习呀! * * LOGO 对两个相关联的表(主表与从表)进行数据插入和删除时,通过参照完整性保证它们之间数据的一致性。 定义表间参照关系:先定义主表主键(或唯一键),再定义从表外键约束。 (2)通过修改表定义外键约束 ALTER TABLE 表名 ADD [CONSTRAINT 约束名] FOREIGN KEY (column [,…n]) --外键 REFERENCES 主表 (主键) 说明: FOREIGN KEY (column [,…n])指定从表中外键的列名。 REFERENCES ref_table (ref_column[,…n]) 指定主表及主键的列名。 课外阅读: 【例】删除上例对XSCJ.课程编号字段定义的外键约束。 USE XS ALTER TABLE XSCJ DROP CONSTRAINT kc_foreign GO *
显示全部
相似文档