本文共 1824 字,大约阅读时间需要 6 分钟。
注意: 比如:
tinyint(2)并不是只能存0到99的数字,还可以存:0到255的数字。
int(2)并不是只能存0到99的数字,还可以存:0到4294967295的数字。
它这括号里的长度跟char(2)、varchar(2)括号里面的长度意思不一样。
我的朋友海滨问我mysql在建表的时候int类型后的长度代表什么? 是该列允许存储值的最大宽度吗? 为什么我设置成int(1), 也一样能存10,100,1000呢.
类型 | 字节 | 最小值 | 最大值 |
(带符号的/无符号的) | (带符号的/无符号的) | ||
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 |
这个M=5我们可以简单的理解成为, 我们建立这个长度是为了告诉MYSQL我们这个字段的存储的数据的宽度为5位数,当然如果你不是5位数(只要在该类型的存储范围之内)MYSQL也能正常存储。
这也就能解释以上标红的话.