整数类型
需要考虑存储空间和可靠性的平衡
浮点类型
浮点数类型不精准 将十进制数转换为二进制数存储
浮点数类型:float double real(默认是,double )
如果需要将real设定为float ,那么通过以下语句实现
set sql_mode = "real_as_float";
例:
select sum(price) from demo.goodmaster;
定点数类型
decimal 是精准的数据类型 将十进制数的整数和小数拆开,分别转换为十六进制数进行存储
使用decimal(M,D)表示高精度小数 M表示整数部分加小数部分的总位数(M<=65) D表示小数部分的位数(D<M)
改变字段price的数据类型为decimal定点数类型
alter table demo.goodmaster modify column price decimal(5,2);
char类型
固定长度字符串 char(M)类型必须预先定义字符串的长度
varchar类型
可变长度字符串 varchar(M)也必须预先知道字符串的最大长度,具体存储的时候,是按照实际字符串的长度存储的
enum类型(枚举类型)
必须要知道字符串所有可能的取值 在这个范围内取1个
set类型
一个字符串对象 必须要知道字符串所有可能的取值 在这个范围内取0个或多个
text类型(文本类型)
按照实际长度存储,不需要预先定义长度
text类型有4种 区别就是最大长度不同
注:text由于实际存储的长度不确定,所以不能使用text类型的字段做主键 所以只能采用char(M)或varcahr(M)
日期与时间类型
优先考虑使用datetime类型 包括完整的日期和时间信息