加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 服务器 > 系统 > 正文

MariaDB外键约束是什么?怎样创建?

发布时间:2022-04-22 10:24:31 所属栏目:系统 来源:互联网
导读:这篇文章主要介绍MariaDB数据库的外键的相关内容,包括了对外建,外键约束的介绍以及如何创建外键约束,文本具体的示例介绍,对大家学习有一定的参考价值,感兴趣的朋友就继续往下看吧。 外键的用途是确保数据的完整性。它通常包括以下几种: 1 实体完整性,
        这篇文章主要介绍MariaDB数据库的外键的相关内容,包括了对外建,外键约束的介绍以及如何创建外键约束,文本具体的示例介绍,对大家学习有一定的参考价值,感兴趣的朋友就继续往下看吧。
 
        外键的用途是确保数据的完整性。它通常包括以下几种:
        1 实体完整性,确保每个实体是唯一的(通过主键来实施)
 
        2 域完整性,确保属性值只从一套特定可选的集合里选择
 
        3 关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值
 
        1.什么是外键约束
        与主键约束不同,创建外键约束不会自动创建对应的索引。 但是由于以下原因,对外键手动创建索引通常是有用的:
 
当在查询中组合相关表中的数据时,经常在联接条件中使用外键列,方法是将一个表的外键约束中的一列或多列与另一个表中的主键列或唯一键列匹配。 索引使 数据库引擎 可以在外键表中快速查找相关数据。 但是,创建此索引并不是必需的。 即使没有对两个相关表定义主键或外键约束,也可以对来自这两个表中的数据进行组合,但两个表间的外键关系说明已用其键作为条件对其进行了优化,以便组合到查询中。
对主键约束的更改可由相关表中的外键约束检查。
        外键约束(foreign key)就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强。关于数据表的完整性和关连性,可以举个例子,有二张表,一张是用户表,一张是订单表:
 
        1.如果我删除了用户表里的用户,那么订单表里面跟这个用户有关的数据,就成了无头数据了,不完整了。
 
        2.如果我在订单表里面,随便插入了一条数据,这个订单在用户表里面,没有与之对应的用户。这样数据也不完整了。
 
        如果有外键的话,就方便多了,可以不让用户删除数据,或者删除用户的话,通过外键同样删除订单表里面的数据,这样也能让数据完整。通过外键约束,每次插入或更新数据表时,都会检查数据的完整性。
 
        2.创建外键约束
        2.1 方法一:通过create table创建外键
        语法:
 
create table 数据表名称(
...,
[CONSTRAINT [约束名称]] FOREIGN KEY [外键字段]
 REFERENCES [外键表名](外键字段,外键字段2…..)
 [ON DELETE CASCADE ]
 [ON UPDATE CASCADE ]
)
        参数的解释:
 
RESTRICT: 拒绝对父表的删除或更新操作。
CASCADE: 从父表删除或更新且自动删除或更新子表中匹配的行。ON DELETE CASCADE和ON UPDATE CASCADE都可用
        注意:on update cascade是级联更新的意思,on delete cascade是级联删除的意思,意思就是说当你更新或删除主键表,那外键表也会跟随一起更新或删除。
 
MariaDB [market]> create table userprofile(id int(11) not null auto_increment, name varchar(50) not null default '', sex int(1) not null default '0', primary key(id))ENGINE=innodb;
# 创建userprofile数据表,指定使用innodb引擎

(编辑:开发网_开封站长网)

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

    热点阅读