1. 数值类型

1.1 整型

类型 占用空间 范围(有符号)
tinyint(m) 1字节 -128~127
smallint(m) 2字节 -32768~32767
mediumint(m) 3字节 -8388608~8388607
int(m) 4字节 -2147483648~2147483647
bigint(m) 8字节 +-9.22*10的18次方

可以加上unsigned关键字将它们定义成无符号的类型,对应的取值范围翻倍,比如:
tinyint unsigned的取值范围为0~255。

1.2 浮点型

类型 含义 占用空间 范围(有符号)
float(m,d) 单精度浮点型 8位精度(4字节) -128~127
double(m,d) 双精度浮点型 8位精度(4字节) -32768~32767

1.3 定点型

类型 含义 占用空间 范围
decimal(m, d) 精确小数值 如果m>d,为m+2否则为d+2。 依赖于m和d的值
1
浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。其中参数 m<65 是总个数,d<30 且 d<m 是小数位。

2. 日期和时间数据类型

类型 含义 范围
date 日期,格式:2014-09-18 3字节
time 时间,格式:08:42:30 3字节
year 年份 1字节
datetime 日期时间,格式:2014-09-18 08:42:30 8字节
timestamp 自动存储记录修改的时间 4字节
1
2
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新。

3. 字符串类型

类型 含义 范围
char(n) 定长字符串 固定长度,最多255个字符
varchar(n) 变长字符串 固定长度,最多65535个字符
tinytext 短文本字符串 可变长度,最多255个字符
tinyblob 二进制字符串 可变长度,最多255个字符
text 长文本数据 可变长度,最多65535个字符
blob 二进制形式的长文本数据 可变长度,最多65535个字符
mediumtext 中等长度文本数据 可变长度,最多2的24次方-1个字符
mediumblob 二进制形式的中等长度文本数据 可变长度,最多2的24次方-1个字符
longtext 极大文本数据 可变长度,最多2的32次方-1个字符
longblob 二进制形式的极大文本数据 可变长度,最多2的32次方-1个字符
1
2
3
4
TEXT以文本方式存储,英文存储区分大小写,而Blob以二进制方式存储,不区分大小写。
BLOB存储的数据只能整体读出。
TEXT可以指定字符集,BLOB不用指定字符集。
4种不同的BLOB类型只是可容纳值的最大长度不同。