以下是 MySQL 中常见的数据类型及其使用范围、大小和默认值的表格:
数据类型 | 使用范围/描述 | 大小 | 默认值 |
---|---|---|---|
整数类型 | |||
TINYINT | 有符号:-128 到 127;无符号:0 到 255 | 1 字节 | 0 |
SMALLINT | 有符号:-32768 到 32767;无符号:0 到 65535 | 2 字节 | 0 |
MEDIUMINT | 有符号:-8388608 到 8388607;无符号:0 到 16777215 | 3 字节 | 0 |
INT | 有符号:-2147483648 到 2147483647;无符号:0 到 4294967295 | 4 字节 | 0 |
BIGINT | 有符号:-2^63 到 2^63-1;无符号:0 到 2^64-1 | 8 字节 | 0 |
浮点类型 | |||
FLOAT | 单精度浮点数,精度约为 7 位小数 | 4 字节 | 0 |
DOUBLE | 双精度浮点数,精度约为 15 位小数 | 8 字节 | 0 |
DECIMAL(M, D) | 精确小数,M 为总位数,D 为小数位数 | 可变(取决于 M, D) | 0 |
日期时间类型 | |||
DATE | 日期,格式:YYYY-MM-DD | 3 字节 | '0000-00-00' |
TIME | 时间,格式:HH:MM:SS | 3 字节 | '00:00:00' |
DATETIME | 日期和时间,格式:YYYY-MM-DD HH:MM:SS | 8 字节 | '0000-00-00 00:00:00' |
TIMESTAMP | 时间戳,范围:1970-01-01 00:00:01 到 2038-01-19 03:14:07 | 4 字节 | 当前时间 |
YEAR | 年份,范围:1901 到 2155 | 1 字节 | 0000 |
字符串类型 | |||
CHAR(N) | 固定长度字符串,N 为字符数(0 到 255) | N 字节 | '' |
VARCHAR(N) | 可变长度字符串,N 为最大字符数(0 到 65535) | 实际长度 + 1/2 字节 | '' |
TINYTEXT | 短文本字符串,最大长度 255 字符 | 实际长度 + 1 字节 | '' |
TEXT | 文本字符串,最大长度 65535 字符 | 实际长度 + 2 字节 | '' |
MEDIUMTEXT | 中等长度文本字符串,最大长度 16777215 字符 | 实际长度 + 3 字节 | '' |
LONGTEXT | 长文本字符串,最大长度 4294967295 字符 | 实际长度 + 4 字节 | '' |
二进制类型 | |||
BINARY(N) | 固定长度二进制数据,N 为字节数(0 到 255) | N 字节 | '' |
VARBINARY(N) | 可变长度二进制数据,N 为最大字节数(0 到 65535) | 实际长度 + 1/2 字节 | '' |
TINYBLOB | 短二进制数据,最大长度 255 字节 | 实际长度 + 1 字节 | '' |
BLOB | 二进制数据,最大长度 65535 字节 | 实际长度 + 2 字节 | '' |
MEDIUMBLOB | 中等长度二进制数据,最大长度 16777215 字节 | 实际长度 + 3 字节 | '' |
LONGBLOB | 长二进制数据,最大长度 4294967295 字节 | 实际长度 + 4 字节 | '' |
其他类型 | |||
ENUM('val1', 'val2', ...) | 枚举类型,只能存储指定的值之一 | 1 或 2 字节 | NULL |
SET('val1', 'val2', ...) | 集合类型,可以存储多个指定的值 | 1 到 8 字节 | '' |
JSON | 用于存储 JSON 格式的数据 | 可变 | NULL |
说明:
默认值:如果未显式指定默认值,MySQL 会根据数据类型自动设置默认值(如整数类型为 0,字符串类型为空字符串等)。
NULL:如果列允许 NULL 值且未指定默认值,则默认值为 NULL。
大小:某些类型的大小取决于存储的实际数据(如 VARCHAR、TEXT 等)。
这些数据类型是 MySQL 中最常用的部分,合理选择数据类型可以提高数据库的性能和存储效率。
评论