参照完整性

123 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第4天

参照完整性

外键约束

1、鼠标步骤

①展开“数据库”节点,展开“表”节点。

②右击表,选择“设计”。

③右击某“字段”,选择“关系”。

image.png ④单击“添加”按钮,在“标识”里可以起名字。

image.png ⑤在“表和列规范”,单击“”按钮,设置外键。

image.png ⑥设置关系名、主表、从表,主键、外键,然后“确定”按钮。

image.png

image.png ⑦最后“关闭”按钮,保存。

 

2、SQL语句

①建立表时

CREATE TABLE  表名

  (

   <列名1>   <数据类型>  [CONSTRAINT  <外键约束名>]  [FOREIGN  KEY] REFERENCES  <父表名>  [(<主键>)]

   ) 

 

例题: 建立“成绩1”表,为“学号”字段设置外键(前提:“学生1”表的学号已经设为主键)。

USE 学生管理                     

GO

CREATE  TABLE  成绩1                

(

  学号   char(8)  NOT  NULL    REFERENCES  学生1 (学号)  ,                 

  课程号  varchar(3)  NOT  NULL,        

  成绩  int                          

)

GO

 

 

看图见区别主键与外键:

image.png

image.png ②修改表时

ALTER  TABLE  从表名

  ADD CONTRAINT  约束名

  FOREIGN  KEY   {(字段名[,…n])}

  REFERENCES  主表 [(字段名[,…n])]

 

 

例题: 修改“成绩1”表 的“学号”字段为外键(前提:“学生1”表的学号已经设为主键)。

USE 学生管理                     

GO

ALTER  TABLE  成绩1

  ADD CONSTRAINT  fk_学号

  FOREIGN  KEY  (学号)  REFERENCES  学生1  (学号)

   

参照完整性作用表现在三个方面:

1、禁止在从表相关字段中插入主表中不存在的关键字的数据行。

2、禁止会导致从表中相应值孤立的主表中的外键值改变。

3、禁止删除在从表中有对应记录的主表记录。