数字类型 | 字节数 | 位数 | 最小有符号 | 最大有符号 | 最小无符号 | 最大无符号 |
tinyint | 1 | 8位 | -2^7=-128 | 2^7-1=127 | 0 | 2^8-1=255 |
smallint | 2 | 16位 | -2^15=32768 | 2^15-1=32767 | 0 | 2^16-1=65535 |
mediumint | 3 | 24位 | -2^23=8388608 | 2^23-1=8388607 | 0 | 2^24-1=16777215 |
int | 4 | 32位 | -2^31=2147483648 | 2^31-1=2147483647 | 0 | 2^32-1=4294967295 |
bigint | 8 | 64位 | -2^63 | 2^63-1 | 0 | 2^64-1 |
long | 4 | 32位 | -2^31=2147483648 | 2^31-1=2147483647 | 0 | 2^32-1=4294967295 |
float | 4 | 32位 | -2^31=2147483648 | 2^31-1=2147483647 | 0 | 2^32-1=4294967295 |
double | 8 | 64位 | -2^63 | 2^63-1 | 0 | 2^64-1 |
long double | 12 | 96位 | -2^95 | -2^95-1 | 0 | -2^96-1 |
文本类型 | 字节数 | 位数 | 最小无符号 | 最大无符号 | 总量 |
tinytext | 1 | 8位 | 0 | 2^8-1=255 | 255 |
text | 2 | 16位 | 0 | 2^16-1=65535 | 64K |
mediumtext | 3 | 24位 | 0 | 2^24-1 | 16M |
longtext | 4 | 32位 | 0 | 2^32-1 | 4G |
时间类型 | 格式 |
date | yyyy-mm-dd |
time | hh:mm:ss |
datetime | yyyy-mm-dd hh:mm:ss |
timestamp | yyyymmddhhmmss |
year | yyyy |
注意数字类型,这里的位数是二进制的位数,mysql里的int的11,10位是十进制的位数,不一样,不要混淆。
int(10)与int(11)后的括号中的字符表示显示宽度,整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,int类型的字段能存储的数据上限还是2147483647(有符号型)和4294967295(无符号型),都只有10位。所以,一般这是10还是11不要自己写,mysql自动会带上,如果选择无符号unsigned(系统自动填充10),如果没选无符号(系统自动填充11). 其它类型:
unsigned int 0~4294967295
int 2147483648~2147483647
unsigned long 0~4294967295
long 2147483648~2147483647
long long的最大值:9223372036854775807 (刚好19位)
long long的最小值:-9223372036854775808
unsigned long long的最大值:18446744073709551615
__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615