数据类型
整数类型
int -2^31 ~ 2^31-1 四个字节
tinyint 一个字节
smallint 两个字节
bigint 八个字节
小数类型
浮点类型
FLOAT
DOUBLE
定点类型 (小数部分不会丢失精度,占用空间高)
DECIMAL(p, s)
p 有效数字长度
s 小数位数
decimal(10, 2)
12345678.77 ok
123456789.44 存不下
12345678.456 小数部分变为46
字符串类型
char(最大长度) 定长的字符类型
varchar(最大长度) 变长的字符类型
name char(5) 'abc' 存储后 'abc ' 用空格补齐不足的部分, 再查询时会去掉, 效率高,但占用空间多, 最大值255
name varchar(5) 'abc' 存储后 'abc' 不会用空格补齐 , 不会占用额外空间, 效率较char低, 最大值65535
日期类型
datetime 包括年月日,时分秒 时间范围短(1000-1-1 ~ 9999-12-31)
date 只包括年月日
time 只包括时分秒
timestamp 也可以包括年月日时分秒, 时间范围短(1970-1-1 ~ 2038-1-19)
create table test(
a datetime,
b date,
c time,
d timestamp
);
now() 获取当前时间
insert into test(a,b,c,d) values(now(),now(),now(),now());
insert into test(a) values('1999-5-8 10:30:00');