【MySQL】主键和外键

本文介绍了数据库中的主键概念,强调其唯一性和不可变性,并详细阐述了外键的使用,以及如何通过外键约束管理表之间的引用关系,包括级联、限制和设为空值策略,以防数据损坏和孤儿记录的产生。
摘要由CSDN通过智能技术生成

1 主键

  • 主键:给定表里每条记录的唯一标识;
    • 理想情况下,主键不能修改,它的值应该永远不变。
    • 主键是非空的,必须有一个唯一标识。
    • 主键可启用自动递增,便于插入数据,不会有重复主键标识;表的主键不能重复。
    • 如student_id, course_id等。

2 外键

  • 外键:一张表中引用了另外一张表主键的那列。如注册表中引用了学生表的主键student_id,引用了课程表的主键course_id,这两个就是注册表的外键。
  • 复合主键:表中的两个外键的结合成为主键,唯一标识每次注册。如student_id和course_id的组合构成此表的主键。

3 外键约束

  • 需要为表中的外键设置更新和删除的约束,保护数据不受损坏。通过外键约束决定当主键被更新或删除时,外键应该进行什么操作。
  • 一般来说,更新的约束设置为级联。删除的约束需按情况设置。
  • 外键约束面板:更新 / 删除。
    • cascade:级联。如果主键更改或删除,会自动更新子表中的记录。
    • restrict:限制。拒绝更新或删除。
    • no action:无操作。和限制一样,防止或拒绝更新或删除操作。
    • set null:设为空值。如果学生id改变,外键会被设置为空值。会导致注册表里的一条记录失去了父表,成为“孤儿记录”。“孤儿记录”是不良数据,多数情况下不选set null
  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuwuuu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值