MariaDB数据库的外键约束实例代码介绍详解 指南针赢富数据_滚动_一尘网_www.l-pal.com
一尘网 - 滚动 - 正文

MariaDB数据库的外键约束实例代码介绍详解

2019-04-20 18:51IT时代网 / [ 综合 ]

  文章主要给大家介绍了关于MariaDB数据库的外键约束的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧

外键

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

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

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

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

1.什么是外键约束

  与主键约束不同,创建外键约束不会自动创建对应的索引。 但是由于以下原因,对外键手动创建索引通常是有用的:

  当在查询中组合相关表中的数据时,经常在联接条件中使用外键列,方法是将一个表的外键约束中的一列或多列与另一个表中的主键列或唯一键列匹配。 索引使 数据库引擎 可以在外键表中快速查找相关数据。 但是,创建此索引并不是必需的。 即使没有对两个相关表定义主键或外键约束,也可以对来自这两个表中的数据进行组合,但两个表间的外键关系说明已用其键作为条件对其进行了优化,以便组合到查询中。

  对主键约束的更改可由相关表中的外键约束检查。

  外键约束(foreign key)就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强。

  关于数据表的完整性和关连性,可以举个例子

  有二张表,一张是用户表,一张是订单表:

  1.如果我删除了用户表里的用户,那么订单表里面跟这个用户有关的数据,就成了无头数据了,不完整了。

  2.如果我在订单表里面,随便插入了一条数据,这个订单在用户表里面,没有与之对应的用户。这样数据也不完整了。

  如果有外键的话,就方便多了,可以不让用户删除数据,或者删除用户的话,通过外键同样删除订单表里面的数据,这样也能让数据完整。

  通过外键约束,每次插入或更新数据表时,都会检查数据的完整性。

2.创建外键约束

2.1 方法一:通过create table创建外键

  语法:

  参数的解释:

  RESTRICT: 拒绝对父表的删除或更新操作。

  CASCADE: 从父表删除或更新且自动删除或更新子表中匹配的行。ON DELETE CASCADE和ON UPDATE CASCADE都可用

注意:on update cascade是级联更新的意思,on delete cascade是级联删除的意思,意思就是说当你更新或删除主键表,那外键表也会跟随一起更新或删除。

  精简化后的语法:

2.1.1 插入测试数据

  例子:我们创建一个数据库,包含用户信息表和订单表

2.1.2 测试级联删除

2.1.3 测试级联更新

  更新数据之前的状态

  更新数据?

  更新数据后的状态?

2.1.4 测试数据完整性

  在上面的例子中,user_order表的外键约束,user_order表受userprofile表的约束

  在user_order里面插入一条数据u_id为5用户,在userprofile表里面根本没有,所以插入数据失败

  先向userprofile表中插入记录,再向user_order表中插入记录就可以了

2.2 方法二:通过alter table创建外键和级联更新,级联删除

  语法:

  例子:

3.删除外键

  语法

  例子:

4.使用外键约束的条件

  要想外键创建成功,必须满足以下4个条件:

  1、确保参照的表和字段存在。

  2、组成外键的字段被索引。

  3、必须使用type指定存储引擎为:innodb.

  4、外键字段和关联字段,数据类型必须一致。

5.使用外键约束需要的注意事项

  1.on delete cascade on update cascade 添加级联删除和更新:

  2.确保参照的表userprofile中id字段存在。

  3.确保组成外键的字段u_id被索引

  4.必须使用type指定存储引擎为:innodb。

  5.外键字段和关联字段,数据类型必须一致。

总结

  以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值。

编辑:陈红

版权与免责声明:

凡未注明"稿件来源"的内容均为转载稿,本网转载出于传递更多信息的目的;如转载稿涉及版权问题,请作者联系我们,同时对于用户评论等信息,本网并不意味着赞同其观点或证实其内容的真实性;


本文地址:http://www.l-pal.com/news/2019/04/20/646235.html

转载本站原创文章请注明来源:一尘网

点击排行
焦点

看上去很火的短视频,对创业者却是个无底洞

  美国杂志《名利场》曾经针对“青少年喜爱的明星”做过一次调 ...详情

Win10系统的便签(便利贴)在哪?

Win10系统更新成2016年周年 版,版本编号1607,。 ...详情

19999元!“小米”自行车来了 史上最贵

啄木网-青岛IT(www.zomiu.com):19999元 ...详情

2月流失20万玩家 绝地求生真的要凉了吗?

《绝地求生》自发布以来可以说是一路飙升,玩家数量每月都有很明 ...详情

万字干货总结:最全的运营数据指标解读

用户获取是运营的起始,用户获取接近线性思维,或者说是一个固定 ...详情

CopyRight © 2019 www.l-pal.com, All Rights Reserved 一尘网 版权所有

使用一尘网前必读 | 关于我们 | 免责声明 | 隐私政策 | 版权声明 | 联系我们