MySQL 数据库中的主键、超键、候选键、外键是什么?
在 MySQL 中,这些键的定义如下:
- 主键 (Primary Key)
- 唯一标识表中每行数据的字段(或字段组合),不可重复且不允许 NULL。
- 一个表只能有一个主键。
- 超键 (Super Key)
- 能唯一标识表中每行数据的任意属性组合(可能包含冗余字段)。
- 例如:学号 或 学号+姓名 均可作为超键。
- 候选键 (Candidate Key)
- 最小超键(不含冗余字段),具有唯一性和不可约简性。
- 一个表可能有多个候选键,最终选其一作为主键。
- 示例:学号 或 身份证号 可作为候选键。
- 外键 (Foreign Key)
- 指向另一表主键的字段,用于建立表间关联,保证数据完整性。
- 例如:学生表中的班级ID字段关联班级表的主键。
关系总结
超键 ⊇ 候选键 ⊇ 主键;外键是跨表引用。