分析MySQL數據類型的長度
MySQL有幾種數據類型可以限制類型的"長度",有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、FLOAT(Length, Decimals)、DOUBLE(Length, Decimals)和DECIMAL(Length, Decimals)。
然而,這些數據類型的長度,並不是都指數據的大小。具體說就是:
(1)CHAR、VARCAHR的長度是指字符的長度,例如CHAR[3]則只能放字符串"123",如果插入數據"1234",則從高位截取,變為"123"。 VARCAHR同理。
(2)TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT的長度,其實和數據的大小無關!Length指的是顯示寬度,舉個例子:int(3) 為顯示為3位 存數字1 則顯示為 001
可以看出,id的顯示寬度為3,不足的左邊補0,數據長度超過的則原樣輸出。如果沒有zerofill,則看不出顯示寬度,沒有前導零。
(3)FLOAT、DOUBLE和DECIMAL的長度指的是全部數位(包括小數點后面的),例如DECIMAL(4,1)指的是全部位數為4,小數點后1位,如果插入1234,則查詢的數據是999.9。過程如下
附錄 常見MySQL數據類型(留作備忘)
類 型 |
大 小 |
描 述 |
CAHR(Length) |
Length字節 |
定長字段,長度為0~255個字符 |
VARCHAR(Length) |
String長度+1字節或String長度+2字節 |
變長字段,長度為0~65 535個字符 |
TINYTEXT |
String長度+1字節 |
字符串,最大長度為255個字符 |
TEXT |
String長度+2字節 |
字符串,最大長度為65 535個字符 |
MEDIUMINT |
String長度+3字節 |
字符串,最大長度為16 777 215個字符 |
LONGTEXT |
String長度+4字節 |
字符串,最大長度為4 294 967 295個字符 |
TINYINT(Length) |
1字節 |
范圍:-128~127,或者0~255(無符號) |
SMALLINT(Length) |
2字節 |
范圍:-32 768~32 767,或者0~65 535(無符號) |
MEDIUMINT(Length) |
3字節 |
范圍:-8 388 608~8 388 607,或者0~16 777 215(無符號) |
INT(Length) |
4字節 |
范圍:-2 147 483 648~2 147 483 647,或者0~4 294 967 295(無符號) |
BIGINT(Length) |
8字節 |
范圍:-9 223 372 036 854 775 808~9 223 372 036 854 775 807,或者0~18 446 744 073 709 551 615(無符號) |
FLOAT(Length, Decimals) |
4字節 |
具有浮動小數點的較小的數 |
DOUBLE(Length, Decimals) |
8字節 |
具有浮動小數點的較大的數 |
DECIMAL(Length, Decimals) |
Length+1字節或Length+2字節 |
存儲為字符串的DOUBLE,允許固定的小數點 |
DATE |
3字節 |
采用YYYY-MM-DD格式 |
DATETIME |
8字節 |
采用YYYY-MM-DD HH:MM:SS格式 |
TIMESTAMP |
4字節 |
采用YYYYMMDDHHMMSS格式;可接受的范圍終止於2037年 |
TIME |
3字節 |
采用HH:MM:SS格式 |
ENUM |
1或2字節 |
Enumeration(枚舉)的簡寫,這意味着每一列都可以具有多個可能的值之一 |
SET |
1、2、3、4或8字節 |
與ENUM一樣,只不過每一列都可以具有多個可能的值 |
以上 轉自 https://blog.csdn.net/DayDreamingBoy/article/details/6310907
Mysql文字長度限制TEXT、TINYTEXT、MEDIUMTEXT、LONGTEXT
有4種TEXT類型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。這些對應4種BLOB類型,有相同的最大長度和存儲需求。
BLOB是一個二進制大對象,可以容納可變數量的數據。有4種BLOB類型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它們只是可容納值的最大長度不同。
tinytext, tinyBlob: 最大長度255個字元(2^8-1)
text, Blob: 最大長度65535個字元(2^16-1)
mediumtext, mediumBlob: 最大長度 16777215 個字元(2^24-1)
longtext, longBlob: 最大長度4294967295個字元 (2^32-1)