实际开发中,一个项目通常需要很多张表才能完成
- 已知:
有一张商品表(product)
- 需求:修改分类名称,将所有的“电脑办公”修改为“笔记本电脑”
假如现在电脑办公的数据有几万条,为了数据的使用和维护更加方便,将单表划分为多表。
分类数据保存在分类表中,商品数据保存在商品表中
这时,我们只需要修改分类表中的cname即可
update category set cname='笔记本电脑' where cname='电脑办公';
category_cid 这个字段就叫做外键
外键
商品表和分类表通过外键 category_cid 相连
- 主表:数据来源表,主键id所在表 c001
例:分类表 category - 从表:数据引用表,外键所在表 category_cid
例:商品表 product
外键特点:
- 从表外键指向主表主键
- 从表外键的数据类型和长度,必须和主表主键数据类型和长度一致
外键约束 foreign key
格式:alter table 从表 add foreign key (从表外键字段名) references 主表 (主表的主键);
例:
alter table product add foreign key(category_cid) references category(cid);
总结:设置外键约束后
- 添加数据时,先添加主表中的数据 category表中的数据
- 删除数据时,先删除从表中的数据 product表中的数据
- 为从表添加外键约束,必须保证:
1、从表外键的数据类型和长度,必须和主表主键数据类型和长度一致
2、从表和主表为空,或者数据必须完整