数据类型

1、简介

MySQL支持多种类型,大致可以分为四类:数值、日期/时间、字符串(字符)类型和二进制类型。

2、数值类型

类型 大小 范围(有符号) 范围(无符号) 用途
tinyint 1字节 -128~127 0~255 很小的整数
smallint 2字节 -32768~32767 0~65535 小的整数
mediumint 3字节 -8388608~8388607 0~16777215 中等大小的整数
int 4字节 -2147483648~2147483647 0~4294967295 普通大小的整数
bigint 8字节 - 2^63~2^63-1 0~2^64 – 1 大整数
float 4字节 单精度浮点数
double 8字节 双精度浮点数
decimal(m,d) m+2字节 压缩的“严格”定点数

3、日期与时间类型

类型 大小 范围 格式 用途
year 1字节 1901~2155 YYYY 年份
time 3字节 -838:59:59~838:59:59 HH:MM:SS 时间
date 3字节 1000-01-01~9999-12-31 YYYY-MM-DD 日期
datatime 8字节 1000-01-01 00:00:00~9999-12-31 23:59:597 YYYY-MM-DD HH:MM:SS 日期时间
timestamp 8字节 1980-01-01 00:00:01 UTC~2040-01-19 03:14:07 UTC YYYY-MM-DD HH:MM:SS 时间戳

4、字符串类型

类型 大小 用途
char 0-255字节 固定长度
varchar 0-65535 字节 可变长度
tinytext 0-255字节 可变长度
text 0-65535字节 可变长度
mediumtext 0-16777215字节 可变长度
longtext 0-4294967295字节 可变长度
enum 1或2字节 枚举类型,最大可达65535个不同的枚举值
set 1、2、3、4或8个字节 一个设置,最大可达64个不同的值

5、二进制类型

类型 大小 用途
bit(m) 默认1字节,大约(m+7)/8字节 位字段类型
binary(m) m字节 固定长度二进制字符串
varbinary(m) m+1字节 可变长度二进制字符串
tinyblob(m) 0~255字节 非常小的blob
blob(m) 0~65535字节 小的blob
mediumblob(m) 0~16777215字节 中等大小的blob
longblob(m) 0~4294967295字节 非常大的blob