以下是 MySQL 8 中各种整数类型的范围说明:
1 有符号整数(Signed)
数据类型 | 存储空间 | 最小值 | 最大值 |
|---|---|---|---|
TINYINT | 1字节 | -128 | 127 |
SMALLINT | 2字节 | -32,768 | 32,767 |
INT | 4字节 | -2,147,483,648 | 2,147,483,647 |
BIGINT | 8字节 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
2 无符号整数(Unsigned)
数据类型 | 存储空间 | 最小值 | 最大值 |
|---|---|---|---|
TINYINT UNSIGNED | 1字节 | 0 | 255 |
SMALLINT UNSIGNED | 2字节 | 0 | 65,535 |
INT UNSIGNED | 4字节 | 0 | 4,294,967,295 |
BIGINT UNSIGNED | 8字节 | 0 | 18,446,744,073,709,551,615 |
3 计算方式
有符号整数:
-2^(n-1)到2^(n-1)-1无符号整数:
0到2^n-1
其中n是位数:
TINYINT: 8位
SMALLINT: 16位
INT: 32位
BIGINT: 64位
4 使用建议
节省存储空间:根据实际数据范围选择最小但够用的类型
避免溢出:确保最大值足够存储可能的数值
无符号优势:当数据不会为负数时,使用 UNSIGNED 可扩大正数范围
BIGINT UNSIGNED 注意:最大值为 18,446,744,073,709,551,615,适合存储极大的数值(如自增ID、计数等)