先来看下我们正常的建表代码
CREATE TABLE user_t (

id int(11) NOT NULL AUTO_INCREMENT,

user_name varchar(40) NOT NULL,

password varchar(255) NOT NULL,

age int(4) NOT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
复制代码
如上所示,通常会给主键加上 not null,auto_increment ,primary key 甚至UNSINGED 这些属性,我们可以通过这些属性去了解主键他的特性。

  1. 首先主键索引是唯一的,所以他确定了数据的唯一性,该字段不能重复。
    2.auto_increment 是递增的意思,每添加一条记录都会自动加 1 。
    3.一般我们的主键都会加上not null ,让主键不可为空,好比一个人如果没有身份证,是不合法的。
    4.至于unsinged这个属性我们细说下:
    UNSIGNED属性就是将数字类型无符号化,与C、C++这些程序语言中的unsigned含义相同。例如,INT的类型范围是-2 147 483 648 ~ 2 147 483 647, INT UNSIGNED的范围类型就是0 ~ 4 294 967 295。

在MYSQL中整型范围:

类型 大小 范围(有符号) 范围(无符号) 用途

TINYINT 1 字节 (-128,127) (0,255) 小整数值

SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值

MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值

INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值

MySQL 主键详解相关推荐

  1. mysql 外键详解_mysql外键详解

    1.1.MySQL中"键"和"索引"的定义相同,所以外键和主键一样也是索引的一种.不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确 ...

  2. mysql 主键 自增_MySQL自增主键详解

    一.自增值保存在哪儿? 不同的引擎对于自增值的保存策略不同 1.MyISAM引擎的自增值保存在数据文件中 2.InnoDB引擎的自增值,在MySQL5.7及之前的版本,自增值保存在内存里,并没有持久化 ...

  3. MySQL自增主键详解

    一.自增值保存在哪儿? 不同的引擎对于自增值的保存策略不同 1.MyISAM引擎的自增值保存在数据文件中 2.InnoDB引擎的自增值,在MySQL5.7及之前的版本,自增值保存在内存里,并没有持久化 ...

  4. mysql外键必须是主键吗_mysql数据库外键、主键详解

    一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号 ...

  5. mysql 外键详解_mysql 中的外键key值的详解

    如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列 2. 如果Key是PRI,  那么该列是主键的组成部分 3. 如果Key是UNI,  那么该列是一 ...

  6. Mysql 外键详解(Foreign Key)

    文章目录 1 概述 2 语法 2.1 创建表时,添加外键约束 2.2 修改表时,添加外键约束 2.3 删除外键约束 1 概述 #mermaid-svg-b7XqGjZVURw4K7zE .label{ ...

  7. mysql 主键引用外键_mysql 主键与外键

    一.主键详解,引用自:https://blog.csdn.net/haiross/article/details/50456154 1.要设置主键自增的话字段必须是整形数字. 二.外键详解:引用自ht ...

  8. (转载)MySQL数据库的主键和外键详解

    主键 主键的定义 主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY 约束来 ...

  9. mysql 主键溢出检查_详解MySQL 表中非主键列溢出情况监控

    今天,又掉坑了. 之前踩到过MySQL主键溢出的情况,通过prometheus监控起来了. 这次遇到的坑,更加的隐蔽. 是一个log表里面的一个int signed类型的列写满了.快速的解决方法当然还 ...

最新文章

  1. 迭代var()内置函数的时候出现RuntimeError: dictionary changed size during iteration的解决办法...
  2. RocketMQ 高级功能介绍
  3. android高德地图显示多点标记,高德地图多点标记自定义地图
  4. hbase查看表结构_HBase
  5. 在学习Python基础中需要知道的知识点:运算符大全,收藏,以后方面查询(算术运算符、赋值运算符、比较运算符、位运算符、逻辑运算符、成员运算符、身份运算符、运算符优先级))
  6. TensorFlow(二)
  7. OC Swift混编-Swift.h File not found
  8. java javap_javap的用途不断发展:您的Java类文件中隐藏了什么?
  9. 如何使用敏捷开发来赢得太阳能竞速赛
  10. mysql中连接运算符_MySQL的运算符
  11. 如何求matlab的in(2.0375),东南大学Matlab作业1.doc
  12. 我把SpringBoot的banner换成了美女,老板说工作不饱和,建议安排加班...
  13. Mac系统可用的甘特图软件分享
  14. vue 移动端校验(是否移动设备,安卓/IOS,是否微信浏览器)
  15. three.js使用外部模型创建动画,使用GLTF格式文件动画创建动画(vue中使用three.js71)
  16. Mac Os OBS 直播 使用手机做摄像头并美颜
  17. 数据中心液冷方式优缺点对比及浸没式液冷表面强化处理
  18. 我的四核Cortex-A53学习之路
  19. LXC的网络结构和端口映射
  20. 中国移动java面试_中国移动软件工程师面试经验

热门文章

  1. 记录Ubuntu下安装使用QT
  2. poj3122 OpenJudge008 Pie派(二分查找)
  3. Android 通过串口控制LED滚动字幕
  4. java(springboot) mybatis 数据权限详细实现(图文)
  5. 洛谷P1077 [NOIP2012 普及组] 摆花
  6. 发现属于你的大数据“矿脉”
  7. HmacSHA256签名验签
  8. opencv打开电脑摄像头
  9. 《三体》三部曲 读后杂记
  10. 微信小程序通过经纬度获取当前省市区及地址信息