在MYSQL当中整形数据的存储有四种,分别是TINYINT SMALLINT MEDIUMINT INT BIGINT,它们的区分如下:
类型 | 存储大小(字节) | 最小有符号数 | 最小无符号数 | 最大有符号数 | 最大无符号数 |
TINYINT | 1 | -128 | 0 | 127 | 255 |
---|---|---|---|---|---|
SMALLINT | 2 | -32768 | 0 | 32767 | 65535 |
MEDIUMINT | 3 | -8388608 | 0 | 8388607 | 16777215 |
INT | 4 | -2147483648 | 0 | 2147483647 | 4294967295 |
BIGINT | 8 | -2^63 | 0 | 2^63-1 | 2^64-1 |
参考链接:
SMALLINT表示范围是-2^15到2^15-1,INT表示范围是-2^31到2^31-1。
需要注意的是INT型是区分有符号数与无符号数的,在MYSQL建表时的length是只表示用于显示的位数。例如INT(M)在integer数据类型中M表示最大显示宽度,M的值跟INT(M)所占多少存储空间并无关系,和数字位也无关,INT(3)、INT(4)、INT(5)都会占用4个字节的空间。
同时只有在参数表达式是bigint型的数据类型时,函数才返回bigint。