数据库中的外键使用详解

数据库中的外键使用详解:

1.外键简介

定义:用于建立表与表之间关联关系的字段称为外键。

简介:外键用于建立表与表之间的关联关系,外键所在的表称为从(子)表。外键所关联的表称为主(父)表。

外键若要创建成功,需要满足如下条件:

  • 外键关联的字段必须是主键;
  • 外键字段与关联字段数据类型一致;
  • 若是在创建表后再添加字段,需要外键字段中的值在主键中都存在,其中null值除外。

 

外键操作:

①创建表时操作

Create table my_foreign([字段列表],constraint 外键名 foreign key(子表外检键字段) references (主表关联字段) [on delete set null] [on update cascade])charset utf8;

②添加外键字段操作

Alter table my_foreign add constraint 外键名 foreign key(子表外检键字段) references (主表关联字段) [on delete set null] [on update cascade]);

③ 删除外键

Alter table my_foreign drop foreign key 外键列表。

 

2.表的约束分析

约束模式:

  • 严格模式(默认模式),不安全操作时,系统操作失败。
  • 级联操作(cascade),主表操作时,子表自动完成同样操作。
  • 设置空操作(set null),主表操作时,字表自动完成设置空操作。

操作

主表

从表

曾加

-

插入的外建值若在主表关联字段中不存在,则插入失败。在外键允许为Null的条件下,插入为null,不会失败。

修改

严格模式(district):若关联字段在子表中不存在没有被引用,则修改成功;若存在引用,则修改失败。

级联操作(cascade):若关联字段在字表中被引用,则子表同样完成修改操作。

设置空操作(set null):若关联字段在字表中被引用,则子表引用的外键被设置Null。

外键值可以修改为关联字段中存在的值或者null,

删除

严格模式(district):若关联字段在子表中不存在没有被引用,则删除成功;若存在引用,则删除失败。

级联操作(cascade):若关联字段在字表中被引用,则子表同样完成修改操作。

设置空操作(set null):若关联字段在字表中被引用,则子表引用的外键被设置Null。

 

-

查询

-

-

 

 

3.多表关联时

主要形式:

  • 一个子表关联多个主表: 此模式下,当操作主表时,所有子表的操作均满足条件时,才运行操作。

 

  • 一个主表关联多个子表:次模式下,当操作该子表时,每个关联的主表均满足操作条件后, 才通过该操作。

 

  • 7
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值