数据库中的外键约束

数据库中的外键约束,第1张

外键是该表是另一个表之间联接的字段

外键必须为另一个表中的主键

外键的用途是确保数据的完整性。它通常包括以下几种:

实体完整性,确保每个实体是唯一的(通过主键来实施)

域完整性,确保属性值只从一套特定可选的集合里选择

关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值

例子:

表A 字典表, 表B 业务表。

外键应建立在表B 上 。

1、表B 的字典项目的代码只能是表A 中代码内容。

2、表B 可以无条件删除记录。

3、表A 在删除的时候,将根据外键的规则,判断表B 中是否使用了要删除数据的代码,如果有引用,则不能删除。

ORACLE 如何建立表外键

例:学生表student (id, name , sex )

成绩表score (id ,math )

如何创建表,要求 有主键,有约束 解: CREATE TABLESTUDENT(ID CHAR(10), NAME VARCHAR(8),SEXCHAR(1))

ALTERTABLESTUDENTADDCONSTRAINTPK_STUDENTPRIMARYKEY(ID)

CREATE TABLE SCORE( ID CHAR(10),MATH NUMBER(5,2))

ALTER TABLE SCORE ADD CONSTRAINT FK_SCROE FOREIGN KEY(ID) REFERENCES STUDENT(ID)

* 主键与外键: 键是表中的列(可以是一列,也可以是几列),主键用于唯一的标识表中的数据项;外键用于连接父表和子表。而所谓的父表和子表是根据3NF 范式的要求,为了消除传递依赖,将原表拆成2个相互关联的表,而这个关联就是外键。

CASCADE:父表delete、update的时候,子表会delete、update掉关联记录;

SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;

RESTRICT:如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;

NO ACTION:同 RESTRICT,也是首先先检查外键


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9900263.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存