MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
一、数值类型
要存储一个介于0-9之间的值,为了查询获取这个值,建议用TINYINT(1)会更快,但如果你是为了大量记录枚举(“真”,“假”),那么用ENUM( 'true' , 'false') 搜索会更快。
所以由这里可以看出,当你使用tinyint[1]来存储超过0,1两个值以外的值,比如存储2,那这个2就是脏数据,tinyint[1]只适用于存储0和1两个值,也即真和假,true和false。
一般的,咱们如果存的是纯数字的话,建议用tinyint,如果是字符串,且是固定长度的,建议用char,而enum的枚举字段,使用的使用需要慎重考虑,避免带来不必要的麻烦。
二、日期/时间类型
1、date 的数据类型格式是 yyyy-MM-dd
例如 2017-08-31
2、datetime 的数据类型格式是 yyyy-MM-dd HH:mm:ss
例如2017-08-31 00:00:00 2017-08-31 08:00:00
三、字符类型