外观
为什么要设置主键
确保数据完整性
- 保证数据唯一性:主键能确保表中的每一行数据都具有唯一的标识,避免出现重复记录。
- 防止数据不一致:因为主键不允许为空值且具有唯一性,所以在数据插入、更新操作时,能保证数据的准确性和一致性,防止因不规范操作导致的数据错误。
提高数据操作效率
- 快速定位数据:数据库系统通常会为主键自动创建索引,如 B + 树索引。在进行数据查询时,通过主键索引可以快速定位到目标数据所在的位置,大大提高查询效率。
- 优化数据插入和删除:对于 InnoDB 存储引擎,如果使用自增主键,每次插入新记录时,记录会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页,形成紧凑的索引结构,插入效率很高。在删除数据时,也能通过主键快速定位到要删除的记录,提高删除操作的效率。
建立表间关系
- 实现参照完整性:在关系型数据库中,主键用于与其他表中的外键建立关联关系,实现表与表之间的数据连接。通过这种关联,可以确保数据的完整性和一致性,实现多表之间的联合查询等操作。
- 支持数据的级联操作:基于主键和外键的关系,可以设置级联操作,如级联更新、级联删除等。当主键表中的记录发生变化时,与之关联的外键表中的相关记录可以自动进行相应的更新或删除操作,方便数据的管理和维护。