mysql 四个外键_MySQL学习(四)——外键

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

795c597d8c2df394f5a958bdfbc0cf7b.png

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

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

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

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

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

75d2c98dfd00ae9bc48c96cb328dbd77.png

分别插入多条数据

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

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

显示如下:

1d68817d37357a66e356eab82b069dc1.png

39af5cec652af6bc887585ce9ff2febf.png

3、声明外键约束

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

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

56b0f67886a80b9adf30d11f696dfd1a.png

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

c329abd7027f505bc969d8ccc0417cdc.png

4、解除约束

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

d87ca7c161b14f6500390fc3b13b28ee.png

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

7ed9be25b7ecf79ba133989666721789.png

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

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

5、一对多建表原则:

cc1631b930bfdb947a6819d633517ac8.png

6、多对多建表原则:

49f69b3350cb4a362b0eb38b4707f2e5.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值