一、整形和浮点型
数据类型 | 大小 | 说明 | 对应C类型 |
bit(n) | n指定比特位数,默认1位 | 比特位数,n范围1-64;存储数值范围2-2^n-1 | char[] |
tinyint | 1字节 | signed char | |
smallint | 2字节 | short int | |
int | 4字节 | int | |
bigint | 8字节 | long long int | |
float(m,d) | 4字节 | 单精度,m指定长度(数字的个数),d指定小数位数。会发生精度丢失。 | float |
double(m,d) | 8字节 | double | |
decimal(m,d) | m/d最大值+2 | 双精度,m指定长度(数字的个数),d指定小数位数。精确数值。 | char[] |
numeric(m,d) | m/d最大值+2 | 同decimal(m,d) | char[] |
注:浮点型整数位不能超出m;小数位若超出d会发生进位,最终保存d位小数。
编辑
扩展:
数值类型也可以指定为无符号类型(unsigned),表示不取负数。但是我们尽量不采用无符号类型,因为有符号类型存不下的数据,对应无符号类型同样很可能存不下,意义不大,还不如直接选择更大范围的数据类型。
二、字符串类型
数据类型 | 大小 | 说明 | 对应C类型 |
varchar(size) | 0-65535字节 | 可变长度字符串,size约束的是字符的个数,并不是所占字节数 | char[] |
text | 0-65535字节 | 长文本数据 | char[] |
mediumtext | 0-16777215字节 | 中等长度文本数据 | char[] |
blob | 0-65535字节 | 二进制形式的长文本数据 | char[] |
三、日期类型
数据类型 | 大小 | 说明 | 对应C类型 |
date | 4字节 | 范围从1000-9999年 | MYSQL_TIME |
time | 3字节 | 范围从-838:59:59-838:59:59 | MYSQL_TIME |
datetime | 8字节 | 范围从1000-9999年,不会进行时区的检索及转换 | MYSQL_TIME |
timestamp | 4字节 | 范围从1970-2038年,自动检索当前时区并进行转换 | MYSQL_TIME |