一、varchar
varchar(<b>N</b>)
<b>N</b>指的是字符的長度
長度 是當前字符集的<b>字符</b>長度,而不是字節(jié)長度!
varchar(5)能存儲5個字符,不管是數(shù)字,字母,還是漢字.
id content
1 12345
2 中國人民銀
MySQL中char,varchar與text類型的選用:
知道固定長度的用char,比如MD5串固定是32位.
經(jīng)常變化的字段用varchar.
超過255字符的只能用varchar或者text,不能用char.
能用varchar的地方不用text.
二、int
int(<b>N</b>)
<b>N</b>指的是字符的填充位數(shù)
以下是每個整數(shù)類型的存儲和范圍(來自mysql手冊)
類型 字節(jié) 最小值 最大值
(帶符號的/無符號的) (帶符號的/無符號的)
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。顯示寬度與存儲大小或類型包含的值的范圍無關(guān);</b>
怎么理解?
我設(shè)置成int(1), 也一樣能存10,100,1000
如果number字段,int(5),<b>屬性=UNSIGNED ZEROFILL</b>(無符號,用0來填充位數(shù))
設(shè)置這個屬性后我往表時插入數(shù)據(jù),系統(tǒng)會自動把number字段M不夠5位的在左側(cè)用0來填充; 效果如下:
