mysql數據類型整理

 INT(M), M是管什麼用的?
  作爲對 ANSI/ISO SQL92標準的一個擴展,MySQL 也支持上面的表格所列出的整型類型 TINYINT、MEDIUMINT 和 BIGINT。另外一個擴展是MySQL 支持隨意指定一個整型數值的顯示格式,這通過在類型的基本關鍵詞後跟一個括號來實現(例如INT(4))。這個可選的寬度規格說明是用於在數值顯示時,對某些值的寬度短於該列寬度的值進行左填補顯示的,而不是爲了限制在該列中存儲值的寬度,也不是爲了限制那些超過該列指定寬度的值的可被顯示的數字位數。當與可選的擴展屬性 ZEROFILL一起使用時,缺省填補用的空格被零代替。舉例來說,一個列被定義爲 INT(5) ZEROFILL,插入的值 4 被檢索出來時爲00004。注意,如果在一個整型列中存儲一個超過顯示寬度的更大值時,當 MySQL爲某些複雜的聯結(join)生成臨時表時,你可能會遇到問題,因爲在這種情況下,MySQL信任地認爲所有的值均適合原始的列寬度。

 具體如下:

 

數字類型

 

類型
大小
範圍(有符號)
範圍(無符號)
用途
TINYINT
1 字節
(-128,127)
(0,255)
小整數值
SMALLINT
2 字節
(-32 768,32 767)
(0,65 535)
大整數值
MEDIUMINT
3 字節
(-8 388 608,8 388 607)
(0,16 777 215)
大整數值
INT或INTEGER
4 字節
(-2 147 483 648,2 147 483647)
(0,4 294 967 295)
大整數值
BIGINT
8 字節
(-9 233 372 036 854 775 808,9 223372 036 854 775 807)
(0,18 446 744 073 709 551615)
極大整數值
FLOAT
4 字節
(-3.402 823 466 E+38,1.175 494 351E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)
0,(1.175 494 351 E-38,3.402 823 466E+38)
單精度
浮點數值
DOUBLE
8 字節
(1.797 693 134 862 315 7E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4E-308,1.797 693 134 862 315 7 E+308)
0,(2.225 073 858 507 201 4E-308,1.797 693 134 862 315 7 E+308)
雙精度
浮點數值
DECIMAL
對DECIMAL(M,D),如果M>D,爲M+2否則爲D+2
依賴於M和D的值
依賴於M和D的值
小數值

 

 

 

字符類型

 

CHAR
0-255字節
定長字符串
VARCHAR
0-255字節
變長字符串
TINYBLOB
0-255字節
不超過 255 個字符的二進制字符串
TINYTEXT
0-255字節
短文本字符串
BLOB
0-65 535字節
二進制形式的長文本數據
TEXT
0-65 535字節
長文本數據
MEDIUMBLOB
0-16 777 215字節
二進制形式的中等長度文本數據
MEDIUMTEXT
0-16 777 215字節
中等長度文本數據
LOGNGBLOB
0-4 294 967 295字節
二進制形式的極大文本數據
LONGTEXT
0-4 294 967 295字節
極大文本數據

 

 

枚舉、集合
ENUM (最多65535個成員)                             64KB
SET  (最多64個成員)                               64KB

時間類型

類型
大小
(字節)
範圍
格式
用途
DATE
3
1000-01-01/9999-12-31
YYYY-MM-DD
日期值
TIME
3
'-838:59:59'/'838:59:59'
HH:MM:SS
時間值或持續時間
YEAR
1
1901/2155
YYYY
年份值
DATETIME
8
1000-01-01 00:00:00/9999-12-3123:59:59
YYYY-MM-DD HH:MM:SS
混合日期和時間值
TIMESTAMP
8
1970-01-01 00:00:00/2037 年某時
YYYYMMDD HHMMSS
混合日期和時間值,時間戳
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章