分析MySQL数据类型的长度
分析MySQL數(shù)據(jù)類型的長度
????? MySQL有幾種數(shù)據(jù)類型可以限制類型的"長度",有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、FLOAT(Length, Decimals)、DOUBLE(Length, Decimals)和DECIMAL(Length, Decimals)。
????? 然而,這些數(shù)據(jù)類型的長度,并不是都指數(shù)據(jù)的大小。具體說就是:
(1)CHAR、VARCAHR的長度是指字符的長度,例如CHAR[3]則只能放字符串"123",如果插入數(shù)據(jù)"1234",則從高位截取,變?yōu)?#34;123"。 VARCAHR同理。
(2)TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT的長度,其實和數(shù)據(jù)的大小無關(guān)!Length指的是顯示寬度,舉個例子:
[cpp]?view plaincopy可以看出,id的顯示寬度為3,不足的左邊補0,數(shù)據(jù)長度超過的則原樣輸出。如果沒有zerofill,則看不出顯示寬度,沒有前導(dǎo)零。
(3)FLOAT、DOUBLE和DECIMAL的長度指的是全部數(shù)位(包括小數(shù)點后面的),例如DECIMAL(4,1)指的是全部位數(shù)為4,小數(shù)點后1位,如果插入1234,則查詢的數(shù)據(jù)是999.9。過程如下
?
[cpp]?view plaincopy附錄 常見MySQL數(shù)據(jù)類型(留作備忘)
| 類?型 | 大?小 | 描?述 |
| CAHR(Length) | Length字節(jié) | 定長字段,長度為0~255個字符 |
| VARCHAR(Length) | String長度+1字節(jié)或String長度+2字節(jié) | 變長字段,長度為0~65 535個字符 |
| TINYTEXT | String長度+1字節(jié) | 字符串,最大長度為255個字符 |
| TEXT | String長度+2字節(jié) | 字符串,最大長度為65 535個字符 |
| MEDIUMINT | String長度+3字節(jié) | 字符串,最大長度為16 777 215個字符 |
| LONGTEXT | String長度+4字節(jié) | 字符串,最大長度為4 294 967 295個字符 |
| TINYINT(Length) | 1字節(jié) | 范圍:-128~127,或者0~255(無符號) |
| SMALLINT(Length) | 2字節(jié) | 范圍:-32 768~32 767,或者0~65 535(無符號) |
| MEDIUMINT(Length) | 3字節(jié) | 范圍:-8 388 608~8 388 607,或者0~16 777 215(無符號) |
| INT(Length) | 4字節(jié) | 范圍:-2 147 483 648~2 147 483 647,或者0~4 294 967 295(無符號) |
| BIGINT(Length) | 8字節(jié) | 范圍:-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字節(jié) | 具有浮動小數(shù)點的較小的數(shù) |
| DOUBLE(Length, Decimals) | 8字節(jié) | 具有浮動小數(shù)點的較大的數(shù) |
| DECIMAL(Length, Decimals) | Length+1字節(jié)或Length+2字節(jié) | 存儲為字符串的DOUBLE,允許固定的小數(shù)點 |
| DATE | 3字節(jié) | 采用YYYY-MM-DD格式 |
| DATETIME | 8字節(jié) | 采用YYYY-MM-DD HH:MM:SS格式 |
| TIMESTAMP | 4字節(jié) | 采用YYYYMMDDHHMMSS格式;可接受的范圍終止于2037年 |
| TIME | 3字節(jié) | 采用HH:MM:SS格式 |
| ENUM | 1或2字節(jié) | Enumeration(枚舉)的簡寫,這意味著每一列都可以具有多個可能的值之一 |
| SET | 1、2、3、4或8字節(jié) | 與ENUM一樣,只不過每一列都可以具有多個可能的值 |
總結(jié)
以上是生活随笔為你收集整理的分析MySQL数据类型的长度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 完全卸载HDP和Ambari
- 下一篇: MySQL日志分析