數據類型 - mysql里mediumint類型如果手動把“長度”設為3,會有影響嗎?
問題描述
查了一下,一般都是這么說的:
TINYINT——一個微小的整數,支持 -128到127(SIGNED),0到255(UNSIGNED),需要1個字節存儲
BIT——同TINYINT(1)
BOOL——同TINYINT(1)
SMALLINT——一個小整數,支持 -32768到32767(SIGNED),0到65535(UNSIGNED),需要2個字節存儲
MEDIUMINT——一個中等整數,支持 -8388608到8388607(SIGNED),0到16777215(UNSIGNED),需要3個字節存儲
INT——一個整數,支持 -2147493648到2147493647(SIGNED),0到4294967295(UNSIGNED),需要4個字節存儲
INTEGER——同INT
BIGINT——一個大整數,支持 -9223372036854775808到9223372036854775807(SIGNED),0到18446744073709551615(UNSIGNED),需要8個字節存儲
用Navicat之類的可視化工具的時候,“長度”那一項是可以改的。也就是說,我可以把mediumint的長度改成3,或者把tinyint的長度改為10……我試著改了一下再看表中的數據,是沒有變的。我就想問問,其實這里生效的只是“類型”對嗎?
又搜了一下,找到這個:
mysql 中int(1)和tinyint(1)中的1只是指定顯示長度,并不表示存儲長度,只有字段指定zerofill是有用如int(3),如果實際值是2,如果列指定了zerofill,查詢結果就是002,左邊用0來填充。
位數限制基本沒有意義。
http://www.111cn.net/database...
不知道這里說的“位數”是不是我說的“長度”呢……
問題解答
回答1:是的,位數(你說的長度)只是顯示問題
回答2:只是顯示的位數,跟最大最小值沒有關系
