主键确保表内数据唯一且非空,自动创建索引提升查询效率,并作为外键引用目标;外键则通过指向另一表主键实现表间关联,防止无效数据插入并支持级联操作,保障数据一致性。
主键和外键在 MySQL 中用于保证数据的完整性和表之间的关联性,它们各自有不同的作用,但共同支撑了关系型数据库的设计基础。
主键(Primary Key)的作用
主键用来唯一标识表中的每一条记录,确保数据行不会重复。一个表只能有一个主键,它可以由单个字段或多个字段组合(复合主键)构成。
- 唯一性:主键的值在表中必须是唯一的,不允许重复。
- 非空性:主键列不能包含 NULL 值,每一行都必须有主键值。
- 快速查询:数据库会自动为主键创建索引,提升查询效率。
- 作为其他表的引用目标:外键通常指向另一个表的主键,形成表间联系。
外键(Foreign Key)的作用
外键用于建立两个表之间的链接,维护表之间的引用完整性。它是一个表中的字段,其值必须在另一个表的主键中存在。
- 关联表数据:外键让一张表能“指向”另一张表的某条记录,实现一对多、多对一等关系。
- 防止无效数据插入:如果插入的外键值在被引用表中不存在,数据库会拒绝该操作。
- 级联操作支持:可设置级联更新或删除,比如删除主表记录时自动删除从表相关记录。
- 保持数据一致性:避免出现“孤儿记录”,如订单对应一个不存在的用户。
基本上就这些。主键确保本表数据唯一,外键确保跨表数据有效关联,两者结合让数据库结构更可靠、查询更清晰。合理使用它们是设计良好数据库的关键。不复杂但容易忽略细节,比如外键需要索引支持,否则可能影响性能。

动创建索引提升查询效率,并作为外键引用目标;外键则通过指向另一表主键实现表间关联,防止无效数据插入并支持级联操作,保障数据一致性。






