1、数值类型
- 整型系列:xxxInt3
int(M),必须和unsigned zerofill一起使用才有意义
- 浮点型系列:float,double(或real)
double(M,D):表示最长为M位,其中小数点后D位
例如:double(5,2)表示的数据范围[-999.99,999.99],如果超过这个范围会报错。
- 定点型系列:decimal(底层实际上是使用字符串进行存储)
decimal(M,D):表示最长为M位,其中小数点后D位
- 位类型:bit
字节范围是:1-8,值范围是:bit(1)~bit(64),默认bit(1) 将传入的数值转为二进制存入
用来存储二进制数。对于位字段,直接使用select命令将不会看到结果。可以使用bit()函数进行插入。插入bit类型字段时,使用bit()函数转为二进制值再插入,使用bin()函数进行读取。
常用 int,double
2、日期时间类型
日期时间类型:year, date, datetime, timestamp
注意一下每一种日期时间的表示范围
timestamp和datetime的区别:
- timestamp范围比较小
- timestamp和时区有关
- show variables like ‘time_zone’;
- set time_zone = ‘+9:00’;
- 表中的第一个非空的timestamp字段如果插入和更新为NULL则会自动设置为系统时间
- 但是datetime段如果插入和更新为NULL则会自动设置为NULL
3、字符串类型
MySQL中提供了多种对字符数据的存储类型,不同的版本可能有所差异。常见的有:
char,varchar,xxtext,binary,varbinary,xxblob,enum,set等等
- 字符串类型char,varchar(M)
char如果没有指定宽度,默认为1个字符
varchar(M),必须指定宽度
- 一般在保存少量字符串的时候,我们会选择char和varchar;
now()函数表示获取当前系统时间。