按取值范围从大到小:bigint, int, mediumint, smallint, tinyint
1、bigint
8字节
最大长度21,因为有符号的数字前面多了一个负号。
有符号:-2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807)
无符号:0 - 18446744073709551615
2、int
4字节
最大长度11
有符号:-2^31 (-2147483648) 到 2^31-1 (2147483647)
无符号:0 - 4294967295
3、mediumint
3字节
最大长度9
有符号:-2^23 (-8388608) 到 2^23-1 (8388607)
无符号:0 - 16777215
4、smallint
2字节
最大长度6
有符号:-2^15 (-32,768) 到 2^15-1 (32767)
无符号:0 - 65535
5、tinyint
1字节
最大长度4
有符号:-128 到 127
无符号:0 - 255
值得注意的是:
在设计字段的时候,对于整形而言,长度的设置是没有必要的,因为bigint, int, mediumint, smallint, tinyint, 以及是否是有符号的才是决定该字段存储范围的。
比如:visite_num int(1) unsigned 和 visite_num int(10) unsigned 的存储和计算范围是一样的。
而且你会发现有符号的比无符号的长度多一位,那是有符号的会多出一个负号在前面。所以对于整形而言。这个长度也是字符的长度,而不是字节数。这个长度的唯一用途就是展示,比如在mysql命令行工具上展示的字符长度就不一样。