【MySQL】主键和外键

文章目录

  • 1 主键
  • 2 外键
  • 3 外键约束

1 主键

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

2 外键

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

3 外键约束

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

你可能感兴趣的:(【MySQL】秋招必备,mysql,java,数据库)