数字类型
整型数: TINYINT / SMALLINT / MEDIUMINT / INT / BIGINT 1/2/3/4/8
不建议选择较大的数值范围,尽量选择合适的数据范围,越小的数据类型会更快,占用磁盘,内存和CPU缓存也更小。
浮点数: FLOAT / DOUBLE 4/8
float和double都是浮点数,只是表达小数的精度有差异,不是一位小数两位小数
定点数: DECIMAL / NUMERIC
表示小数建议统一使用decimal,精度会好很多。
字符串类型
字符串: CHAR / VARCHAR
字节串: BINARY / VARBINARY
文本: TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT
二进制大对象: TINYBLOB / BLOB / MEDIUMBLOB / LONGBLOB
枚举: ENUM
ENUM列值必须包含且只能包含一个值列表成员
集合: SET
SET列值则允许包含任意多个值列表成员 (可以为空,也可以是全体 成员 )。
日期与时间
日期: DATE / TIME / YEAR
时间戳: DARETIME / TIMESTAMP
两者的区别:https://www.zhihu.com/question/519967710/answer/2538183529
日期范围:
存储空间:8 /4
时区相关:DARETIME 时区无关,TIMESTAMP 时区有关
默认值:null / 当前时间
都可以用 Java的Timestamp接收