mysql中数据类型大的方面来分可以分为:日期和时间,数值以及字符串
日期和时间
mysql数据类型 | 含义 |
date | 3字节,日期,格式:2017-01-11 |
time | 3字节,时间,格式:16:26:10 |
datetime | 8字节,日期时间,格式:2017-01-11 16:26:10 |
timestamp | 4字节,自动存储记录修改的时间 |
year | 1字节,年份 |
数值
mysql数据类型 | 含义(有符号) |
tinyint | 1字节,范围(-128~127) |
smallint | 2字节,范围(-32768~32767) |
mediumint | 3字节,范围(-8388608~8388607) |
int | 4字节,范围(-2147483648~2147483647) |
bigint | 8字节,范围(±2的63次) |
浮点型
mysql数据类型 | 含义 |
float(m,n) | 4字节,单精度浮点型,m个总数,n个小数,有效数字8位 |
double(m,n) | 8字节,双精度浮点型,m个总数,n个小数,有效数字16位 |
decimal(m,n) | 存储为字符串的浮点数 |
1,插入123.45678,最后查询结果为99.999
2,插入123.456,最后查询结果为99.999
3,插入12.34567,最后查询结果为12.346(小数位最后一位会进行四舍五入)
字符串数据类型
mysql数据类型 | 含义 |
char(n) | 固定长度,最多255个字符 |
varchar(n) | 可变长度,最多65535个字符 |
tinytext | 可变长度,最多255个字符 |
text | 可变长度,最多65535个字符 |
mediumtext | 可变长度,最多2的24次方-1个字符 |
longtext | 可变长度,最多2的32次方-1字符 |
2,char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应占用空间+1,并且实际占用空间+1≤n
3,超过char和varchar的n设置后,字符串会被截断
其他类型
1,enum("m1","m2",..."m65535")
enum数据类型就是定义了一种枚举,最多包含65535个不同的成员
2,set("m1","m2"..."m64")
set数据类型为指定一组预定义之中的零个或多个值提供了一种方法,这组值最多包含64个成员