2. 外键约束(FOREIGN KEY)
外键约束是表的一个特殊字段,经常和主键约束一起使用,用来确保数据的一致性。
对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。
所以外键就是用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。
在定义外键时需要遵守以下规则:
-
主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表成为自参照表,这种结构成为自参照完整性;
-
必须为主表定义主键;
-
主键不能包含空值,但允许在外键中出现空值;
-
在主表的表名后面指定列名或列名的组合,这个列或列的组合必须是主表的主键或候选键;
-
外键中列的数目必须和主表的主键中列的数目相同;
-
外键中列的数据类型必须和主表主键中对应列的数据类型相同。
2.1 在创建表时设置外键约束
在建表语句中,加入关键字FOREIGN KEY来指定外键,用REFERENCES来连接与主表的关系语法格式:
例
① 使用1部分创建的st_info5数据表作为主表:
② 创建tb_1数据表,并在表上创建外键约束,使其中course_id作为外键关联到表st_info5的主键st_id:
上面语句执行成功之后,在表tb_1中添加了course_Choosing的约束名称,以及外键名称为fk_course的course_id字段,依赖于表st_info5的主键st_id。
2.2 在修改表时添加外键约束
同样的可以在创建表之后再修改,SQL语句如下:
【注】从表的外键关联的必须是主表的主键,且主键和外键的数据类型必须一致。例如两者都是int型或者都是char型数据。
2.3 删除外键约束
当一个表中不需要外键约束时,就需要从表中将其删除。外键一旦删除,就会解除主表和从表间的关联关系。
删除的语法格式:
例如:
- 我的微信公众号
- 微信扫一扫
- 我的微信公众号
- 微信扫一扫
评论