加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql外键可以做什么

发布时间:2023-06-20 15:31:33 所属栏目:MySql教程 来源:
导读:这篇文章主要介绍了mysql外键能做什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql外键能做什么文章都会有所收获,下面我们一起来看看吧。

mysql外键主要用来建立主表与
这篇文章主要介绍了mysql外键能做什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql外键能做什么文章都会有所收获,下面我们一起来看看吧。
 
mysql外键主要用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性;其作用是保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。一个表可以有一个或多个外键,外键可以为空值,若不为空值,则每一个外键的值必须等于主表中主键的某个值。
 
MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。
 
MySQL外键的作用:
 
保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用外表中列的值!
 
外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。比如,一个水果摊,只有苹果、桃子、李子、西瓜等 4 种水果,那么,你来到水果摊要买水果就只能选择苹果、桃子、李子和西瓜,其它的水果都是不能购买的。
 
主表删除某条记录时,从表中与之对应的记录也必须有相应的改变。一个表可以有一个或多个外键,外键可以为空值,若不为空值,则每一个外键的值必须等于主表中主键的某个值。
 
定义外键时,需要遵守下列规则:
 
主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。
 
必须为主表定义主键。
 
主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。
 
在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。
 
外键中列的数目必须和主表的主键中列的数目相同。
 
外键中列的数据类型必须和主表主键中对应列的数据类型相同。
 
在修改表时添加外键约束
 
添加外键约束的前提是:从表中外键列中的数据必须与主表中主键列中的数据一致或者是没有数据。
 
在修改数据表时添加外键约束的语法格式如下:
 
ALTER TABLE <数据表名> ADD CONSTRAINT <外键名>
 
FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);
 
示例:修改数据表 tb_emp2,将字段 deptId 设置为外键,与数据表 tb_dept1 的主键 id 进行关联
 
ALTER TABLE tb_emp2 ADD CONSTRAINT fk_tb_dept1 FOREIGN KEY(deptId)REFERENCES tb_dept1(id);
 
删除外键约束
 
当一个表中不需要外键约束时,就需要从表中将其删除。外键一旦删除,就会解除主表和从表间的关联关系。
 
删除外键约束的语法格式如下所示:
 
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;
 
示例:删除数据表 tb_emp2 中的外键约束 fk_tb_dept1
 
ALTER TABLE tb_emp2 DROP FOREIGN KEY fk_tb_dept1;
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!