一、数字类型
| 类型 | 占用字节 | 表示范围 |
|---|---|---|
| TINYINT | 1个字节 | -128~127 |
| SMALLINT | 2个字节 | -32768~32767 |
| MEDIUMINT | 3个字节 | -8388608~8388607 |
| INT | 4个字节 | -2147483648~2147483647 |
| BIGINT | 8个字节 | -9223372036854775808~9223372036854775807 |
| FLOAT(X) | 4(X < = 24) 或 8( 25 < = X < = 53 ) | |
| FLOAT | 4 个字节 | |
| DOUBLE | 8 个字节 | |
| DOUBLE PRECISION | 8 个字节 | |
| REAL | 8 个字节 | |
| DECIMAL(M,D) | M字节(D+2 , 如果M < D) | |
| NUMERIC(M,D) | M字节(D+2 , 如果M < D) |
二、字符串类型
| 类型 | 占用字节 | 表示范围 |
|---|---|---|
| CHAR(M) | 与字符集相关(单行不能超过65535个字节) | 1 <= M <= 255 |
| VARCHAR(M) | 与字符集相关(单行不能超过65535个字节) | 1 <= M <= 255 |
| TINYBLOB, TINYTEXT | L+1 字节 | L< 2 ^ 8(255B) |
| BLOB, TEXT | L+2 字节 | L< 2 ^ 16(64K) |
| MEDIUMBLOB, MEDIUMTEXT | L+3 字节 | L< 2 ^ 24(16M) |
| LONGBLOB, LONGTEXT | L+4 字节 | L< 2 ^ 32(4G) |
| ENUM('value1','value2',...) | 1 或 2 个字节, 取决于枚举值的数目(最大值65535) | |
| SET('value1','value2',...) | 1,2,3,4或8个字节, 取决于集合成员的数量(最多64个成员) |
另外,当varchar太大时,会自动转化为text
大于varchar(255)变为 tinytext
大于varchar(500)变为 text
大于varchar(20000)变为 mediumtext
三、日期和时间类型
DATE 3 个字节
DATETIME 8 个字节
TIMESTAMP 4 个字节
TIME 3 个字节
YEAR 1 字节