注意: 比如:
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也能正常存储。
这也就能解释以上标红的话.