| 類型 | 有符號範圍 | 無符號範圍 | 儲存字節 |
|---|---|---|---|
| TINYINT | -128 ~ 127 | 0 ~ 255 | 1 |
| SMALLINT | -32,768 ~ 32,767 | 0 ~ 65,535 | 2 |
| MEDIUMINT | -8,388,608 ~ 8,388,607 | 0 ~ 16,777,215 | 3 |
| INT / INTEGER | -2,147,483,648 ~ 2,147,483,647 | 0 ~ 4,294,967,295 | 4 |
| BIGINT | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 0 ~ 18,446,744,073,709,551,615 | 8 |
| 類型 | 範圍 | 精度 | 儲存字節 |
|---|---|---|---|
| FLOAT | ±3.402823466E+38 ~ ±1.175494351E-38 | ~7 位有效數字 | 4 |
| DOUBLE / REAL | ±1.7976931348623157E+308 ~ ±2.2250738585072014E-308 | ~15 位有效數字 | 8 |
DECIMAL(M,D) / NUMERIC(M,D):M 總位數(1~65),D 小數位數(0~30),儲存為字串,精確計算,適合金額。
| 類型 | 範圍 | 儲存字節 | 備註 |
|---|---|---|---|
| DATE | 1000-01-01 ~ 9999-12-31 | 3 | 僅日期 |
| DATETIME | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 8 | 無時區轉換 |
| TIMESTAMP | 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC | 4 | 自動時區轉換,受 2038 年問題限制 |
| TIME | -838:59:59 ~ 838:59:59 | 3 | 時間間隔或一天內時間 |
| YEAR | 1901 ~ 2155 (4位) / 70~69 (2位) | 1 | 僅年份 |
| 類型 | 最大長度 | 特點 |
|---|---|---|
| CHAR(M) | 255 字符 | 定長,右側補空格,讀取時去除尾部空格 |
| VARCHAR(M) | 65,535 字符(受行大小限制) | 變長,1-2 字節長度前綴,不補空格 |
| TINYTEXT / TINYBLOB | 255 (2^8-1) 字符/字節 | 短文本/二進制 |
| TEXT / BLOB | 65,535 (2^16-1) | 中等文本/二進制 |
| MEDIUMTEXT / MEDIUMBLOB | 16,777,215 (2^24-1) | 長文本/二進制 |
| LONGTEXT / LONGBLOB | 4,294,967,295 (2^32-1) | 極長文本/二進制 |
ENUM('v1','v2',...):最多 65,535 個不同值,儲存為整數索引。SET('v1','v2',...):最多 64 個成員,儲存為位掩碼。DECIMAL。TIMESTAMP,否則用 DATETIME。VARCHAR 避免過大,超過 255 字符長度前綴變 2 字節。