一、varchar
varchar(<b>N</b>)
<b>N</b>指的是字符的长度
长度 是当前字符集的<b>字符</b>长度,而不是字节长度!
varchar(5)能存储5个字符,不管是数字,字母,还是汉字.
id content
1 12345
2 中国人民银
MySQL中char,varchar与text类型的选用:
知道固定长度的用char,比如MD5串固定是32位.
经常变化的字段用varchar.
超过255字符的只能用varchar或者text,不能用char.
能用varchar的地方不用text.
二、int
int(<b>N</b>)
<b>N</b>指的是字符的填充位数
以下是每个整数类型的存储和范围(来自mysql手册)
类型 字节 最小值 最大值
(带符号的/无符号的) (带符号的/无符号的)
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
mysql手册中这个长度/值用"M"来表示的.
细心的朋友应该有注意到过mysql手册上有这么一句话:
<b>M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关;</b>
怎么理解?
我设置成int(1), 也一样能存10,100,1000
如果number字段,int(5),<b>属性=UNSIGNED ZEROFILL</b>(无符号,用0来填充位数)
设置这个属性后我往表时插入数据,系统会自动把number字段M不够5位的在左侧用0来填充; 效果如下: