1、整数
分为:tinyint、smallint、mediumint、int和bigint等5种
signen: 有符整数,可存储正数和负数,如 TINYINT SIGNED 表示的范围是 -127 ~ 128
unsigned: 无符整数,只能存储正数,但是表示的值是有符整数的两倍, 如 TINYINT UNSIGNED 表示的范围是 0 ~ 255
有符整数和无符整数只有表示的值大小上的区别,存储空间和效率上都是一样的
tinyint 占 8 bit 存储空间 1个字节 一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。
smallint 占16 bit 存储空间 2个字节 有符号的范围是-32768到32767,无符号的范围是0到65535 从-32000到+32000范围 存储相对比较小的整数。 比如: 年纪,数量
mediumint 占24 bit 存储空间 3个字节 一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。
int 占32 bit 存储空间 4个字节 从-2000000000到+2000000000范围 存储中等整数 例如: 距离
bigint 占64bit 存储空间 8个字节 有符号的范围是-9223372036854775808到9223372036854775807 存 储超大的整数 例如: 科学/数学数据
2、实数
decimal : 用户自定义精度的浮点型数据变量;取决于精度与长度,以特别高的精度存储小数数据。可表示比 BIGINT 还大的正数,保存时可以指定整数长度和小数位数,如DECIMAL(18, 9)表示总长18位,小数点后9位,一共占用9 Byte,小数点前4 Byte,小数点1 Byte, 小数点后4 Byte, 一般用于存储精确数据,如银行账目
float 单精度浮点型数据 占32 bit 存储空间 4个字节 存储小数数据 例如:测量,温度
double 双精度浮点型数据 占64bit 存储空间 8个字节 需要双精度存储的小数数据
3.字符串
char 0-255字节 固定长度的字符串长度(最高可达255字符) 存储通常包含预定义字符串的变量例如: 定期航线,国家或邮编
varchar 0-255字节 变长字符串,具有最大限制的可变长度的字符串 例如:名字,密码,短文标签
text 没有最大长度限制的可变长度的字符串(0-65 535字节) 存储大型文本数据 例如: 新闻故事,产品描述
blob 二进制字符串 实际字符串长度 存储二进制数据 例如:图片,附件,二进制文档
tinyblob 0-255字节 不超过 255 个字符的二进制字符串
tinytext 0-255字节 短文本字符串
4、日期
date 以yyyy-mm-dd格式的日期 占3个字节 存储日期 例如:生日,产品满期
datetime : 将日期保存为yyyy-mm-dd hh:mm:ss格式,范围从1001 ~ 9999年,占用空间 8 Byte 存储包含日期和时间的数据 例如:提醒的人,事件
timestamp : 将日期保存为Unix时间戳,范围从1970 ~ 2038年, 占用空间 4Byte,并且和时区相关,它的特性是当插入没有定义TIMESTAMP的列时,MySQL会自动将时间戳保存为当前时间,所以一般可用于记录最后登录时间等
5.位集数据类型
BIT: 最大 64 bit,一般用于保存一个true/false值,如BIT(1),占用 1 bit,远小于使用字符表示
SET: 用于保存多个true/false值,可用于权限管理,效果见下图
6.枚举
ENUM: 类似于SET,但是只能插入1个值,一般可用来表示性别等唯一且范围固定的属性(男,女..)