1字符类型:
常用的字符类型有: char varchar blob text 。。。
但那是这里做个对比: 先对比一下 char 和varchar类型
char(5): 表示定长 此时就开辟5个字符的长度用来存储数据,当然若果存储的数据小于5 此时也是开辟5个字符空间;
varchar(5):表示变长 此时初始开辟5个 但是若果 存储的数据小于5个字符则开辟的实际空间就是实际长度多1~2个字节,至于多1个字节还是2个字节根据当前的编码有关;
注意:
1,不管是char 还是 varchar 当存储的数据超出当前定义长度,都会出现字符串截取,也就是最多只能保持当前指定位数的字符;
2,使用char 和varchar 的声明字段类型的时候都要给定长度
二进制数据(xxxBlob)
XXXBLOB和xxxtext是对应的,不过存储方式不同,xxxTEXT是以文本方式存储的,如果存储英文的话区分大小写,而xxxBlob是以二进制方式存储的,不区分大小写。xxxBlob存储的数据只能整体读出。xxxTEXT可以指定字符集,xxxblob不用指定字符集。
但是:text类型的字段不能添加 主键,或者唯一约束
2日期时间类型:
常见数据类型有:date,time,datetime,timestamp
timestamp 不固定
create table test5(c1 date,c2 time,c3 datetime ,c4 timestamp);
insert into test5 values('2017-8-16','11:18:20','2017-8-16 11:18:20','2017-8-16 11:18:20');
查询结果:
当更改时区的时候(北京位于东8区)
timestamp类型的时间则会根据市区而改变
当timestamp类型如果不插入值的时候则会自动获取当地时间
3布尔类型:
mysql是不支持bool类型的,所以,当把一个数据设置成bool类型的时候,数据库会自动转换成tinyint(1)的数据类型,其实这个就是变相的bool。 默认值也就是1,0两种,分别对应了bool的true和false
4枚举类型: