MySQL学习——外键

Posted 会飞的咸鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL学习——外键相关的知识,希望对你有一定的参考价值。

1、比方现在有两张表“分类表”和“商品表”,为了表明商品属于哪个分类,通常我们将在商品表上添加一列,用于存放分类cid的信息,此列称为:外键。

此时分类表category称为主表,cid称为主键;商品表products称为从表,category_id称为外键。

外键特点:1)从表外键的值是对主表主键的引用

     2)从表外键类型必须与主表主键一致。

使用外键的目的:保证数据的完整性

2、首先在命令提示符内创建一个数据库web09,并创建两张表category和product,语句如下:

分别插入多条数据

eg.insert into category(cid,cname) values(\'c001\',\'家电\');

insert into product(pid,pname,price,category_id) values(\'p001\',\'联想\',\'5000\',\'c001\');

显示如下:

3、声明外键约束

语法:alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键);

[外键名称]用于删除外键约束的,一般建议"_fk"结尾

约束声明后,如果我想删除category表中cid=c003的数据,删除不了

4、解除约束

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

继续删除category表中cid=c003的数据,可以删除

注意:从表外键不能添加主表中不存在的记录

   主表不能删除从表中已经引用的记录。

5、一对多建表原则:

6、多对多建表原则:

以上是关于MySQL学习——外键的主要内容,如果未能解决你的问题,请参考以下文章

MySQL学习——外键

Mysql学习总结(19)——Mysql无法创建外键的原因

MySQL数据库学习笔记----MySQL多表查询之外键表连接子查询索引

零基础带你学习MySQL—foreign key 外键(二十六)

mysql学习之路_外键

尝试使用 mysql 学习带有外键和一对多关系关系的 Spring Boot 但是