MySQL 主键详解
先来看下我们正常的建表代码
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 这些属性,我们可以通过这些属性去了解主键他的特性。
- 首先主键索引是唯一的,所以他确定了数据的唯一性,该字段不能重复。
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 主键详解相关推荐
- mysql 外键详解_mysql外键详解
1.1.MySQL中"键"和"索引"的定义相同,所以外键和主键一样也是索引的一种.不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确 ...
- mysql 主键 自增_MySQL自增主键详解
一.自增值保存在哪儿? 不同的引擎对于自增值的保存策略不同 1.MyISAM引擎的自增值保存在数据文件中 2.InnoDB引擎的自增值,在MySQL5.7及之前的版本,自增值保存在内存里,并没有持久化 ...
- MySQL自增主键详解
一.自增值保存在哪儿? 不同的引擎对于自增值的保存策略不同 1.MyISAM引擎的自增值保存在数据文件中 2.InnoDB引擎的自增值,在MySQL5.7及之前的版本,自增值保存在内存里,并没有持久化 ...
- mysql外键必须是主键吗_mysql数据库外键、主键详解
一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号 ...
- mysql 外键详解_mysql 中的外键key值的详解
如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列 2. 如果Key是PRI, 那么该列是主键的组成部分 3. 如果Key是UNI, 那么该列是一 ...
- Mysql 外键详解(Foreign Key)
文章目录 1 概述 2 语法 2.1 创建表时,添加外键约束 2.2 修改表时,添加外键约束 2.3 删除外键约束 1 概述 #mermaid-svg-b7XqGjZVURw4K7zE .label{ ...
- mysql 主键引用外键_mysql 主键与外键
一.主键详解,引用自:https://blog.csdn.net/haiross/article/details/50456154 1.要设置主键自增的话字段必须是整形数字. 二.外键详解:引用自ht ...
- (转载)MySQL数据库的主键和外键详解
主键 主键的定义 主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY 约束来 ...
- mysql 主键溢出检查_详解MySQL 表中非主键列溢出情况监控
今天,又掉坑了. 之前踩到过MySQL主键溢出的情况,通过prometheus监控起来了. 这次遇到的坑,更加的隐蔽. 是一个log表里面的一个int signed类型的列写满了.快速的解决方法当然还 ...
最新文章
- 迭代var()内置函数的时候出现RuntimeError: dictionary changed size during iteration的解决办法...
- RocketMQ 高级功能介绍
- android高德地图显示多点标记,高德地图多点标记自定义地图
- hbase查看表结构_HBase
- 在学习Python基础中需要知道的知识点:运算符大全,收藏,以后方面查询(算术运算符、赋值运算符、比较运算符、位运算符、逻辑运算符、成员运算符、身份运算符、运算符优先级))
- TensorFlow(二)
- OC Swift混编-Swift.h File not found
- java javap_javap的用途不断发展:您的Java类文件中隐藏了什么?
- 如何使用敏捷开发来赢得太阳能竞速赛
- mysql中连接运算符_MySQL的运算符
- 如何求matlab的in(2.0375),东南大学Matlab作业1.doc
- 我把SpringBoot的banner换成了美女,老板说工作不饱和,建议安排加班...
- Mac系统可用的甘特图软件分享
- vue 移动端校验(是否移动设备,安卓/IOS,是否微信浏览器)
- three.js使用外部模型创建动画,使用GLTF格式文件动画创建动画(vue中使用three.js71)
- Mac Os OBS 直播 使用手机做摄像头并美颜
- 数据中心液冷方式优缺点对比及浸没式液冷表面强化处理
- 我的四核Cortex-A53学习之路
- LXC的网络结构和端口映射
- 中国移动java面试_中国移动软件工程师面试经验