整型
MySQL 可以为整数类型指定宽度,例如 INT(11)
,对大多数应用这是没有意义的:它不会限制值的合法范围,只是规定了 MySQL 的一些交互工具(例如 MySQL 命令行客户端)用来显示字符的个数。对于存储和计算来说,INT(1)
和 INT(20)
是相同的。只有使用 ZEROFILL
属性时,指定长度才有意义(按照指定长度进行零的填充)。
所以,在不使用 ZEROFILL
时,不需要指定整形的长度。
-
TINYINT
空间占用为1 byte
(8 bit
)。使用无符号类型(UNSIGNED
)时,8
位都是1
时所表示的十进制数为255
,所以其可存储的范围为0 ~ 255
。使用有符号类型时,范围为-128 ~ 127
。 -
SMALLINT
空间占用为2 byte
,可存储的无符号范围为0 ~ 65535
,有符号范围为-32768 ~ 32767
。 -
MEDIUMINT
空间占用为3 byte
,可存储的无符号范围为0 ~ 16777215
,有符号范围为-8388608 ~ 8388607
。 -
INT
空间占用为4 byte
,可存储的无符号范围为0 ~ 4294967295
,有符号范围为-2147483648 ~ 2147483647
。 -
BIGINT
空间占用为8 byte
,可存储的无符号范围为0 ~ 18446744073709551615
,有符号范围为-9223372036854775808 ~ 9223372036854775807
。
参考链接:MySQL 整型长度的含义 – 简书