Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT
MySQL支持的几种整型长度及表示范围如下:
Type | Storage | Minimum Value | Maximum Value |
---|---|---|---|
(Bytes) | (Signed/Unsigned) | (Signed/Unsigned) | |
TINYINT | 1 | -128 | 127 |
0 | 255 | ||
SMALLINT | 2 | -32768 | 32767 |
0 | 65535 | ||
MEDIUMINT | 3 | -8388608 | 8388607 |
0 | 16777215 | ||
INT | 4 | -2147483648 | 2147483647 |
0 | 4294967295 | ||
BIGINT | 8 | -9223372036854775808 | 9223372036854775807 |
0 | 18446744073709551615 |
INT(3)与INT(11)的区别
在定义int型字段时经常碰到INT(3)、INT(11),其有何区别呢?
INT(3)、INT(11)以及INT在存储时,都是占用4个字节,其表示范围也是一样的。
其差别在于(要观察其差别,定义字段时加属性ZEROFILL,具体可参考第三个链接):
INT(3)表示如果数字长度不满3位,则不足部分补0。例如,数字10,插入到数据库时会自动填充为010。
类似的,INT(11)表示如果数字长度不满11位,则不足部分补0。
参考
https://dev.mysql.com/doc/refman/5.7/en/integer-types.html
http://blog.sina.com.cn/s/blog_610997850100wjrm.html
https://blogs.oracle.com/jsmyth/entry/what_does_the_11_mean