| 類型 | 有號範圍 | 無號範圍 |
|---|---|---|
| TINYINT | -128 ~ 127 | 0 ~ 255 |
| SMALLINT | -32,768 ~ 32,767 | 0 ~ 65,535 |
| MEDIUMINT | -8,388,608 ~ 8,388,607 | 0 ~ 16,777,215 |
| INT / INTEGER | -2,147,483,648 ~ 2,147,483,647 | 0 ~ 4,294,967,295 |
| BIGINT | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 0 ~ 18,446,744,073,709,551,615 |
| 類型 | 範圍 | 備註 |
|---|---|---|
| FLOAT | -3.402823466E+38 ~ -1.175494351E-38、0、1.175494351E-38 ~ 3.402823466E+38 | 單精度,約 7 位有效數字 |
| DOUBLE / DOUBLE PRECISION / REAL | -1.7976931348623157E+308 ~ -2.2250738585072014E-308、0、2.2250738585072014E-308 ~ 1.7976931348623157E+308 | 雙精度,約 15 位有效數字 |
| DECIMAL(M,D) / NUMERIC(M,D) | 由 M(總位數,含小數點)與 D(小數位)決定。M 預設 10,D 預設 0 | 精確定點數,適合金融計算 |
| 類型 | 範圍 | 備註 |
|---|---|---|
| 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:00 ~ 2038-01-19 03:14:07 (UTC) | 4 位元組,時區感知,5.6+ 支援毫秒 |
| TIME | -838:59:59 ~ 838:59:59 | 3 位元組 |
| YEAR[(2|4)] | 4 位:1901 ~ 2155、0000;2 位:70-69 (1970-2069) | 1 位元組,預設 4 位 |
| 類型 | 最大長度 | 特性 |
|---|---|---|
| CHAR(M) [BINARY] / NCHAR(M) | M = 1~255 | 定長,儲存時右側補空格,讀取時自動去除尾部空格。無 BINARY 則大小寫不敏感。 |
| VARCHAR(M) [BINARY] | M = 1~255 (5.0.3 前) / 65,535 (5.0.3+) | 變長,尾部空格自動去除。5.0.3+ 共享 65,535 行上限。 |
| TINYBLOB / TINYTEXT | 255 (2^8-1) 字元 | |
| BLOB / TEXT | 65,535 (2^16-1) 字元 | |
| MEDIUMBLOB / MEDIUMTEXT | 16,777,215 (2^24-1) 字元 | |
| LONGBLOB / LONGTEXT | 4,294,967,295 (2^32-1) 字元 |
ENUM('v1','v2',...):最多 65,535 個不同值,內部以整數儲存,效能極佳。SET('v1','v2',...):最多 64 個成員,以位元組合儲存。DECIMAL。TIMESTAMP;歷史日期、未來日期用 DATETIME。CHAR,其餘用 VARCHAR。TEXT/BLOB 家族,注意 TEXT 排序只比較前 max_sort_length 字元。