mysql-数据类型

平常进行数据库操作时,字段的数据类型可能并不是很起眼,但是它对于减少内存占用和提高效率非常有帮助,而这就需要我们对数据类型有着清晰的认知。


char与varchar:

create table vc(v varchar(4),c char(4));

这里写图片描述

insert into vc values('ab ','ab ');

这里写图片描述

这里写图片描述

由此我们可以清晰看出 varchar列保留空格,char列会删除尾部空格

这里写图片描述

char列会删除空格再做操作,varchar列依然保留空格

date,time,datetime:

create table t (d date,t time,dt datetime);

这里写图片描述

insert into t values(now(),now(),now());

这里写图片描述

由此可以看出值类型:

date: YYYY-MM-DD
time:HH-MM-SS
datetime:YYYY-MM-DD HH-MM-SS

timestamp:

timestamp:

timestamp的重要特点之一是:

与时区有关。

当插入日期时,会先转换为本地时区后存放;
而从数据库里取值,也需要将日期转为本地时区后显示。
所以不同时区看到的同一个时间可能不一样。

create table t4(
    id1 timestamp not null default CURRENT_TIMESTAMP,
    id2 datetime default null
);

这里写图片描述

这里写图片描述

SYSTEM就是显示为本地时区

tiemstamp常作为时间戳,主要应用于时区不同的场景

ENUM:

create table t (gender enum ('M','f'));

这里写图片描述

insert into t5 values('M'),('1'),('f'),(NULL);

这里写图片描述

ENUM存储:

1-255 以1字节形式存储
255-65535 以2个字节存储

ENUM类型是忽略大小写的,对于M,F存储时都默认将他们转换为了大写
而且并没有返回警告

ENUM只允许从值集合当中选取单个值,而不是一次取多个值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值