• 宁企研发出声波去霾技术 用喇叭“吹落”PM2.5
  • 【2013年】老有所养,居家养老服务让老人安享晚年
  • 【新华微视评】你敢相信吗 他会是下个“球王”?
  • 陕西省质量强省工作推进委员会会议召开
  • 投资6个亿!山西大同大学北校区建设项目获批复
  • 北京市网信办依法约谈360doc个人图书馆
  • 扎实做好专项巡视工作 为打赢脱贫攻坚战提供有力保障
  • 多元的观点 相同的立场
  • 寒锐转债(123017)今日申购 基本信息一览
  • 海外媒体关注中国再度发射双星:“北斗三号”迈出关键一步(3)
  • 以韵律写山水:大陆画家樊洲水墨巡回展在台北举行
  • 云南省第十五届运动会胜利闭幕
  • 商品房预售制度将被取消?“现房”时代来临……
  • 高速运行 通话无忧
  • “最多跑一次”改革:让人民生活更美好
  • 威武影院 - 滚动 - 正文

    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.zgyqzx.net/news/2019/04/20/646235.html

    转载本站原创文章请注明来源:威武影院

    点击排行
    焦点

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

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

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

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

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

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

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

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

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

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

    CopyRight ? 2019 威武影院 www.zgyqzx.net, All Rights Reserved 一尘网 版权所有

    使用一尘网前必读 | 关于我们 | 免责声明 | 隐私政策 | 威武影院 | 联系我们