Mysql的字段类型分为三类:数字类型、日期和时间类型以及字符串(字符)类型。
下表详解了MySQL所支持的字段类型和他们的取值范围。
数据类型
|
描述
|
字节数
|
推荐使用
|
SMALLINT
|
整数,-32000到32000
|
2
|
存储相对比较小的整数,例如:年龄、数量
|
INT
|
整数,-2000000000到2000000000
|
4
|
存储中等数据,例如:距离
|
BIGINT
|
不能用SMALLINT和INT描述的超大整数
|
8
|
存储超大的数据,例如:科学/数学数据
|
FLOAT
|
单精度浮点型数据
|
4
|
存数小数数据,例如:测量、温度
|
DOUBLE
|
双精度浮点型数据
|
8
|
需要双精度存储的小数数据,例如:科学数据
|
DECIMAL
|
用户自定义精度的浮点型数据
|
变量;取决于精度与长度
|
以特别高的精度存储小数数据,例如:货币数额、科学数据
|
CHAR
|
固定长度的字符串
|
特定字符串长度(最多255个字符)
|
存储通常包含预定义字符串的变量,例如:定期航线、国家或邮编
|
VARCHAR
|
具有最大限制的可变长度的字符串
|
变量;1+实际字符串长度(最高255字符)
|
存储不同长度的字符串值(高达一个特定的最大限度),例如
:名字、密码
|
TEXT
|
没有最大长度限制的可变长度的字符串
|
实际存储文本的长度
|
存数大型文本数据,例如:新闻故事,产品描述
|
BLOB
|
二进制字符串
|
变量;2+实际字符串长度
|
存储二级制数据,例如:图片、附件、二进制文档
|
DATE
|
以yyyy-mm-dd格式表示的日期
|
3
|
存储日期,例如:生日,产品添加日期
|
TIME
|
以hh:mm:ss格式表示的时间
|
3
|
存数时间或时间间隔,例如:报警声、俩个时间之间的间隔、任务开始时间、结束时间
|
DATETIME
|
以yyyy-mm-ddhh:mm:ss格式表示日期和时间
|
8
|
存储包含日期和时间的数据,例如:提醒的日期时间
|
TIMESTAMP
|
以yyyy-mm-ddhh:mm:ss格式表示日期和时间
|
4
|
记录即时时间,例如:事件提醒器、“最后来访”的时间
|
YEAR
|
以yyyy表示的格式表示年份
|
1
|
存储年份,例如:毕业年、出生年
|
ENUM
|
一组数据,用户可从中选择其中一个
|
1或2个字节
|
存储字符类型,只能从中选择之一,例如:布尔值选择的性别
|
SET
|
一组数据,用户可从中选择其中0、1或者更多
|
从1到8字节;取决于设置的大小
|
存储字符属性,可从中选择多个字符的联合,例如:多选项选择,比如:爱好
|