MySQL:多表操作(外键约束)

实际开发中,一个项目通常需要很多张表才能完成

  • 已知
    有一张商品表(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、从表和主表为空,或者数据必须完整
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要删除MySQL约束,可以通过以下步骤进行操作: 1. 首先,使用SHOW CREATE TABLE语句查看的创建语句,以获取约束的名称。这可以通过运行以下命令完成:[2] ``` SHOW CREATE TABLE 名; ``` 2. 查找到需要删除的约束的名称。 3. 然后,使用ALTER TABLE语句和DROP FOREIGN KEY子句来解除约束。命令的语法如下: ``` ALTER TABLE 名 DROP FOREIGN KEY 约束名称; ``` 4. 最后,提交对的更改。 请注意,执行这些操作之前,请确保你具有足够的权限来修改结构。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [check the manual that corresponds to your MySQL server version for the right syntax to use near解决...](https://blog.csdn.net/qq_42900286/article/details/106108616)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [mysql删除约束](https://blog.csdn.net/qilin001cs/article/details/79108613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值