MySQL约束(二)- 外键约束

青林
青林
青林
4
文章
0
评论
2020-09-0313:09:00 评论 343 771字
摘要

外键约束是表的一个特殊字段,经常和主键约束一起使用,用来确保数据的一致性。

2. 外键约束(FOREIGN KEY)

外键约束是表的一个特殊字段,经常和主键约束一起使用,用来确保数据的一致性。

对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。

所以外键就是用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。

在定义外键时需要遵守以下规则:

  • 主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表成为自参照表,这种结构成为自参照完整性;

  • 必须为主表定义主键;

  • 主键不能包含空值,但允许在外键中出现空值;

  • 在主表的表名后面指定列名或列名的组合,这个列或列的组合必须是主表的主键或候选键;

  • 外键中列的数目必须和主表的主键中列的数目相同;

  • 外键中列的数据类型必须和主表主键中对应列的数据类型相同。

2.1 在创建表时设置外键约束

在建表语句中,加入关键字FOREIGN KEY来指定外键,用REFERENCES来连接与主表的关系语法格式:

MySQL约束(二)- 外键约束 

① 使用1部分创建的st_info5数据表作为主表:

 MySQL约束(二)- 外键约束

② 创建tb_1数据表,并在表上创建外键约束,使其中course_id作为外键关联到表st_info5的主键st_id:

MySQL约束(二)- 外键约束 

上面语句执行成功之后,在表tb_1中添加了course_Choosing的约束名称,以及外键名称为fk_course的course_id字段,依赖于表st_info5的主键st_id。

2.2 在修改表时添加外键约束

同样的可以在创建表之后再修改,SQL语句如下:

MySQL约束(二)- 外键约束 

【注】从表的外键关联的必须是主表的主键,且主键和外键的数据类型必须一致。例如两者都是int型或者都是char型数据。

2.3 删除外键约束

当一个表中不需要外键约束时,就需要从表中将其删除。外键一旦删除,就会解除主表和从表间的关联关系。

删除的语法格式:

MySQL约束(二)- 外键约束 

例如:

MySQL约束(二)- 外键约束 
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: