整數型數據類型 | |||
類型名稱 | 說明 | 存儲大小 | 取值範圍 |
TINYINT | 很小的正數(一般用於boolean存儲) | 1個字節 | -128~127 unsigned:0~255 |
SMALLINT | 小正數 | 2個字節 | -32768~32767 unsigned:0~65535 |
MEDIUMINT | 中等大小的正數 | 3個字節 | -2^23 ~2^23-1 unsigned: 2^24 -1 |
INT(INTEGER) | 普通大小的正數 | 4個字節 | -2^31 ~2^31-1 unsigned: 2^32 -1 |
BIGINT | 大正數(一般用於主鍵) | 8個字節 | -2^63 ~2^63-1 unsigned: 2^64 -1 |
小數型數據類型 | |||
FLOAT(M,N) | M表示總共位數,N表示小數位數(單精度浮點數) | 4個字節 | ±1.175494351E – 38 |
DOUBLE(M,N) | 雙精度浮點數 | 8個字節 | ±2.2250738585072014E – 308 |
DECIMAL(M,D) | 壓縮的“嚴格”定點數 | M+2個字節 | 可變;其值的範圍依賴於M 和D |
字符串數據類型 | |||
CHAR(N) | 固定長度 | N * C(字符存儲大小見文末註釋1) | 0~255字符 |
VARCHAR(N) | 可變長度(與CHAR區別見文末註釋2) | 實際存儲大小 | 0~65535字節 |
TEXT | 文本 | 實際存儲大小 | 0~65535字節 |
LONGTEXT | 長文本 | 實際存儲大小 | 0~2^32-1字節 |
日期數據類型 | |||
DATE | 存儲日期值(yyyy-MM-dd) | 3個字節 | 1000-01-01~9999-12-31 |
TIME | 存儲時分秒(HH:mm:ss) | 3個字節 | 00:00:00~23:59:59 |
DATETIME | 存儲日期+時間(yyyy-MM-dd HH:mm:ss) | 8個字節 |
1000-01-01 00:00:00~ 9999-12-31 23:59:59 |
TIMESTAMP | 存儲日期+時間,可作時間戳(yyyy-MM-dd HH:mm:ss) | 4個字節 | 1970-01-01 00:00:01~ 2038-01-19 03:14:07 |
註釋1:
UTF-8 : 一個英文/數字字符佔1個字節,一箇中文(含繁體)字符佔3個字節。
Unicode: 一個英文/數字字符佔2個字節,一箇中文(含繁體)字符佔2個字節。
符號 : 英文標點佔1個字節,中文標點佔2個字節。舉例:英文句號“.”佔1個字節的大小,中文句號“。”佔2個字節的大小。
註釋2:
char:固定長度,最大長度是255字符。適合用在身份證號碼、手機號碼等定、等長的加密密碼等。
varchar:可變長度,最大長度65535字節,其實最多隻能存儲65532個字節,還有3個字節用於存儲長度。
1)char的存取速度優於varchar
2)char(20)表示這個字段最多存20個字符,如果只存了16個字符,那麼也會佔用20個字符的空間
varchar(20)表示這個字段最多存20個字符,如果只存了16個字符,那麼只佔用16個字符的空間
3)即使使用Varchar數據類型,也不能夠太過於慷慨!比如你只使用到90個字符,VARCHAR(100)與VARCHAR(200),雖然他們用來存儲90個字符的數據,其存儲空間相同。但是對於內存的消耗是不同的。