首页
学习
活动
专区
工具
TVP
发布

MySQL 之主键

本文标识 :MQ0021

本文编辑 :长安月下赏美人儿

编程工具 :MySQL、DBeaver

阅读时长 :4分钟

前言

小编在查询相关的学习资料的同时,偶尔会遇到关于主键的信息,也是一直没有很清晰的认知,所以,这篇学习笔记,主要是和大家一起分享有关主键的知识。

什么是主键

含义:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键。

定义:PRIMARY KEY

注意:主键之于数据表相当于口红之于女人,可以不用,但最好还是有

主键选择的遵循原则

任何两行都不具有相同的主键值

每行必须具有一个主键值,且不允许设置为NULL

主键应当是对用户没有意义的

永远不要更新主键,主键除了唯一标识一行之外再无其他意义

主键不应包含动态变化的数据,如时间戳、创建/修改时间列等

主键应当由计算机自动生成

主键的作用

保证实体的完整性

加快数据库的操作速度

在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复

DBMS自动按主键值的顺序显示表中的记录

如果没有定义主键,则按输入记录的顺序显示表中的记录

主键的选择

编号为主键

方法:选择唯一字段“编号”作为主键设计

场景:多用于小型项目

缺点:若修改编号,后果严重;若允许编号重复,则彻底懵逼

自动编号为主键

方法:新建一个 ID 字段,自动增长

优点:便于检索传递、空间小、无主键重复问题

缺点:插入指定ID 记录会麻烦、与非数字型主键系统对接麻烦

Max加一

方法:无自动增长的数字型,采用 Insert时,读取 Max 值后加一

优点:避免自动编号的问题

缺点:记录多会严重影响效率、会出现相同值的情况

设置主键的方法

在创建数据表的同时决定是否有主键

在创建数据表完成后再决定主键

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191122A069YC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券