定义主键和外键主要是为了维护关系数据库的完整性,总结一下:
1、主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。
身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。不能有重复的,不允许为空
2、外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。
比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。表的外键是另一表的主键, 外键可以有重复的, 可以是空值
3、索引:该字段没有重复值,但可以有一个空值
作用:
个数:
不一定是主键,但必须是唯一性索引。
主键约束和唯一性约束都是唯一性索引。
外键是表间关系的参照,可以不是主键。只是表明两个表之间的关系是通过那个属性连接起来的。
外键的使用场景
因为有foreign key的约束,使得两张表形成了三种了关系:
1、书和出版社(一对多或多对一)
一个出版社可以出版多本书,一本书也可以被多家出版社书版
关联方式:foreign key
创建出版社表
创建书籍表
注意:
on delete cascade 和 on update cascade的意思是:在父表上
插入出版社记录
插入书籍记录
2、作者和书籍的关系
多对多:一个作者可以写多本书,一本书也可以有多个作者,双向的一对多,即多对多。
关联方式:foreign key+一张新的表
3、用户和账号
一对一:一个用户只能注册一个账号,即一对一的关系
关联方式:foreign key+unique
创建用户表
创建博客表
插入用户表中的记录
插入博客表的记录
查询lisi的博客地址
1、创建一个表用来引用外键
2、创建一个表,使用外键引用
注意:
如果student表中跟这个class表有关联的数据,是不能删除class表中与其关联的纪录的。
MySQL外键约束_ON DELETE CASCADE/ON UPDATE CASCADE(级联删除,删除主表数据,附表数据也被删除)_Marttin2的博客-CSDN博客
mysql-外键的三种关系 (py3study.com)
到此这篇mysql主键和外键的建立关系(mysql主键和外键的建立关系)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sqlbc/73812.html