整数类型概述
MySQL 提供了5种整数类型,用于存储不同范围的整数值,每种类型占用不同的存储空间:
类型名称 | 说明 | 存储需求 | 有符号范围(signed) | 无符号范围(unsigned) |
---|---|---|---|---|
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 |
BIGINT | 大整数 | 8字节 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
重要特性
1.取值范围计算:
有符号:-2^(n-1) 到 2^(n-1)-1
无符号:0 到 2^n-1
(n=位数,1字节=8位)
2.显示宽度:
仅影响显示格式,不影响实际存储和取值范围
不足宽度时用空格填充(如 INT(5)显示123为" 123")
超过宽度仍能完整显示(如 INT(3)存储1234显示为1234)
3. AUTO_INCREMENT:
整数类型可添加自增约束
常用于主键字段
选择建议
1. 根据数据范围选择最小够用的类型
状态标志:TINYINT
小范围ID:SMALLINT
常规ID:INT
极大数值:BIGINT
2. 无符号选择:
确定不会出现负值时使用UNSIGNED
可扩大正数范围(如TINYINT UNSIGNED范围0~255)
3. 存储优化:
更小的类型占用更少空间,提高查询效率
避免过度使用BIGINT造成空间浪费
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程