麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
1001
2023-04-18
MariaDB数据库的外键约束实例详解
外键
外键的用途是确保数据的完整性。它通常包括以下几种:
1 实体完整性,确保每个实体是唯一的(通过主键来实施)
2 域完整性,确保属性值只从一套特定可选的集合里选择
3 关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值
1.什么是外键约束
与主键约束不同,创建外键约束不会自动创建对应的索引。 但是由于以下原因,对外键手动创建索引通常是有用的:
当在查询中组合相关表中的数据时,经常在联接条件中使用外键列,方法是将一个表的外键约束中的一列或多列与另一个表中的主键列或唯一键列匹配。 索引使 数据库引擎 可以在外键表中快速查找相关数据。 但是,创建此索引并不是必需的。 即使没有对两个相关表定义主键或外键约束,也可以对来自这两个表中的数据进行组合,但两个表间的外键关系说明已用其键作为条件对其进行了优化,以便组合到查询中。 对主键约束的更改可由相关表中的外键约束检查。
外键约束(foreign key)就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强。
关于数据表的完整性和关连性,可以举个例子
有二张表,一张是用户表,一张是订单表:
1.如果我删除了用户表里的用户,那么订单表里面跟这个用户有关的数据,就成了无头数据了,不完整了。 2.如果我在订单表里面,随便插入了一条数据,这个订单在用户表里面,没有与之对应的用户。这样数据也不完整了。
如果有外键的话,就方便多了,可以不让用户删除数据,或者删除用户的话,通过外键同样删除订单表里面的数据,这样也能让数据完整。
通过外键约束,每次插入或更新数据表时,都会检查数据的完整性。
2.创建外键约束
2.1 方法一:通过create table创建外键
语法:
?
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。