mysql-数据类型

来源:互联网 发布:mac os x 10.9.5 下载 编辑:程序博客网 时间:2024/06/05 06:04

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


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只允许从值集合当中选取单个值,而不是一次取多个值

原创粉丝点击