您的位置 首页 php

重蔚php学习第三十二天笔记——mysql3范式外键CURD

外键

外键:Foreign key,一个表中有一个字段,指向另外一张表的 主键 。那么该字段就称之为外键。

什么时候使用外键?

外键约束:使用了外键之后,那么对外键指向的表就会产生很多约束,删改

表与表之间是有联系的,如何证明这种联系呢?使用外键。

外键的使用

包括在建立表的时候指定外键,以及在创建表之后修改表结构增加外键

语法1:在创建表时增减外键 foreign key (字段) references 表名 (字段)

21350004ed746fcc431b

查看外键

show create table 表名

21380004f0f9fee9a141

外键的作用

约束了使用外键的表的数据操作:不能插入一个外键所指向的主键不存在的记录

22c6000054be6b48bb67

如果要在子表插入数据,必须保证外键对应父表的主键里已经存储该对应的数据

212d00011d936c68d8bc

在外键使用上有两个概念

父表:被外键所指向(引用)的表就是父表

子表:定义了外键的表就是子表

删除外键

将外键移除

因为一个表中可能出现多个外键,因此在删除外键的时候必须指定对应的外键的名字

语法:alter table 表名 drop foreign key 外键名

21380004f0fa4b308210

注意:外键要求对应的字段必须是一个 索引 ,在创建外键的时候会自动给对应的外键字段创建索引;但是删除外键时只会删除对应的外键,而不会将对应字段的索引删除。

语法2:修改表结构增加外键

语法:alter table 表名 add foreign key (字段) references 表名 (字段)

22c6000054bf9d9394bc

修改外键名字

要先删除外键,然后重新添加

外键名字语法: constraint 外键名 foreign key (字段) references 表名 (字段)、

21350004ed77962a6bdb

注意:在添加外键名字的时候,不要对外键名添加单引号,如果非要区别,使用反引号。

外键约束

对父表和子表相应数据的操作的时候,必须要满足约束的条件之后,才能操作,否则不能操作。

外键约束规则:

1. restrict 模式,严格模式(默认),不允许父表对有约束的数据进行操作(删除和修改,对应的主键)

213c00011da7c5daa3b6

2.set null模式,置空模式,当父表的数据被删除的时候,子表对应的数据被设置成null

3.cascade模式,级联模式,当父表的数据被删除的时候,子表对应的数据也随之被删除。

通常,对应外键的约束规则:在更新的时候,级联操作,在删除的时候,置空(父表影响子表)

约束1:当子表插入数据的时候,必须保证父表已经存在对应的主键ID。

约束2:子表对父表的约束,父表的数据操作,如果在有子表约束的情况下(被引用),那么不能随便操作

在添加外键时需要指定约束模式

add foreign key (字段) references 表名 (字段) on update 模式[cascade] on delete 模式[set null]

21350004ed755ae50487

1.更新父表数据

22c7000053a611a9d8bb

2.删除父表数据

22c7000053a7e4cd5d37

外键约束的存在是为保证数据的一致性。

数据库设计 角度出发,应该尽可能的使用外键来保证数据的一致性。如果从外部应用的角度出发(PHP),很少使用外键约束

PHP:在需要使用外键的表中,增加一个字段,该字段用来保存对应的表的主键,但是不建立外键关系。

注意:

1.建立外键的前提条件:外键对应的字段类型要与指向表的主键的字段类型一致

2.约束时父表删除子表置空:子表的字段允许为空

文章来源:智云一二三科技

文章标题:重蔚php学习第三十二天笔记——mysql3范式外键CURD

文章地址:https://www.zhihuclub.com/54380.shtml

关于作者: 智云科技

热门文章

网站地图