【mysql基础系列十二】外键(foreign key)

什么是外键?

如果公共关键字在一个关系中是主关键字,那个这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作为主关键字的表称为主表,具有此外建的表称为从表。外键又称外关键字。


外键的基本操作

1、增加外键

mysql中提供两种方式增加外键:

方法一:创建表时增加外键(类似主键)

    在从表字段之后增加如下语句:

【constraint '外键名'】 foreign key(外键字段) references 主表(主键);

MUL:多索引,外键本身是一个索引,外键要求外键字段本身也是一种普通索引。查询表创建语句如下图:


方法二:创建表之后增加外键

after table 从表 add 【constraint '外键名'】 foreign key(外键字段) references 主表(主键);

注:

1、外键字段需要保证与关联度主表的主键字段类型完全一致,基本属性相同。

2、如果是在标后增加外键,对数据还有要求(从表数据与主表的关联关系)。

3、外键只能使用innodb存储引擎。

2、修改、删除外键

外键不允许修改,只能删除之后重新创建。外键被删除后,其对应的普通索引依然存在。

alter table 从表 drop foreign key 外键名字;


索引删除:

alter table 表名 drop index 索引名;

外键约束

通过建立外键关系之后,对主表和从表都会有一定的数据约束效果,以此来保证数据完整性。当外键产生时,从表和主表数据会因对方的存在而导致数据不能进行某些不和规范的操作(如默认约束模式下,从表不能插入主表不存在的数据、主表不能删除从表中已经插入的数据)。

不足:约束可能导致数据在后台变化不可控,导致程序在进行设计开发逻辑的时候,没有办法很好的把握数据(业务)。因此外键使用较少。

约束模式

mysql提供3中约束模式:

    1、district:严格模式,默认的,不允许操作。

    2、cascade:级联模式,一起操作,当主表变化,从表数据跟着变化。通常在进行约束的时候需要制定操作:on update cascade,表示级联更新约束。

    3、set null:置空模式,主表变化(主要指删除),从表对应记录设置为空,但是有个前提是从表中对应外键关键字允许为空。通常在进行约束时需要指定操作:on delete set null,表示删除置空约束。

add foreign key(外键字段) references 主表(主键) on 约束模式1 【on 约束模式2】;

效果如下:


MySQL是一种关系型数据库管理系统,它采用了主键和外键来定义和维护表之间的关系。主键是用来唯一标识表中每一行的字段,而外键用来建立不同表之间的联系。下面是一段关于MySQL基础主键和外键的代码使用视频的介绍。 视频开始时,首先介绍了如何在MySQL中创建表并定义主键。代码示例展示了CREATE TABLE语句的使用,其中指定了主键的字段和约束。然后,视频展示了如何插入数据到表中,并强调了主键字段的唯一性,以及如何处理主键冲突的情况。接着,视频演示了如何使用主键来查询特定的行,并展示了如何使用主键字段来进行排序和过滤结果。 接下来,视频转向外键的介绍。首先,视频展示了如何在创建表时定义外键的语法。代码示例中,在CREATE TABLE语句中使用了FOREIGN KEY约束来指定外键的字段和参考的表,强调了外键的一致性要求。然后,视频演示了如何插入数据到含有外键的表中,并介绍了外键约束的作用。视频中还展示了如何使用外键来查询关联的数据,并且强调了外键的引用完整性。 接着,视频讲解了如何使用ALTER TABLE语句来修改表的结构和添加外键。代码示例中,视频展示了如何使用ALTER TABLE ADD CONSTRAINT语句来添加外键约束,并强调了外键的限制条件。最后,视频提醒了在删除表时需要注意外键的处理,示范了如何使用ALTER TABLE DROP CONSTRAINT语句来删除外键约束。 通过这段视频的介绍,观众可以了解到MySQL中主键和外键的基本概念和用法。视频提供了代码示例和演示,帮助观众更好地理解如何在MySQL中使用主键和外键来建立表之间的关系,并展示了如何通过主键和外键来实现数据的查询和一致性要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值