本文标识 :MQ0021
本文编辑 :长安月下赏美人儿
编程工具 :MySQL、DBeaver
阅读时长 :4分钟
前言
小编在查询相关的学习资料的同时,偶尔会遇到关于主键的信息,也是一直没有很清晰的认知,所以,这篇学习笔记,主要是和大家一起分享有关主键的知识。
什么是主键
含义:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键。
定义:PRIMARY KEY
注意:主键之于数据表相当于口红之于女人,可以不用,但最好还是有
主键选择的遵循原则
任何两行都不具有相同的主键值
每行必须具有一个主键值,且不允许设置为NULL
主键应当是对用户没有意义的
永远不要更新主键,主键除了唯一标识一行之外再无其他意义
主键不应包含动态变化的数据,如时间戳、创建/修改时间列等
主键应当由计算机自动生成
主键的作用
保证实体的完整性
加快数据库的操作速度
在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复
DBMS自动按主键值的顺序显示表中的记录
如果没有定义主键,则按输入记录的顺序显示表中的记录
主键的选择
编号为主键
方法:选择唯一字段“编号”作为主键设计
场景:多用于小型项目
缺点:若修改编号,后果严重;若允许编号重复,则彻底懵逼
自动编号为主键
方法:新建一个 ID 字段,自动增长
优点:便于检索传递、空间小、无主键重复问题
缺点:插入指定ID 记录会麻烦、与非数字型主键系统对接麻烦
Max加一
方法:无自动增长的数字型,采用 Insert时,读取 Max 值后加一
优点:避免自动编号的问题
缺点:记录多会严重影响效率、会出现相同值的情况
设置主键的方法
在创建数据表的同时决定是否有主键
在创建数据表完成后再决定主键
领取专属 10元无门槛券
私享最新 技术干货