整数类型

TINYINT SMALLINT MEDIUMINT INT(INTEGER) BIGINT

浮点数类型和定点数类型

浮点数和定点数类型的特点是可以处理小数。
FLOAT 单精度 DOUBLE 双精度
REAL 默认 DOUBLE SQL模式设定为启用 REAL_AS_FLOAT 那么 real 是float;

  1. SET sql_mode = "REAL_AS_FLOAT";

DECIMAL(M,D) M表示整数部分加小数部分一共有多少位,M<=65。D表示小数部分位数,D<M。

文本类型

char(M) 固定长度字符串
varchar(M) 可变长度字符串。
text 字符串 系统自动按实际长度存储,不需要预先定义长度。mysql不允许text类型的字段做主键。char(m) varchar(m)
enum 枚举类型 取值必须是预先设定的一组字符串值范围之内的一个,必须要知道字符串所有可能的取值。
set 一个字符串对象 取值必须是在预先设定的字符串范围之内的0个或多个,也必须知道字符串所有可能的取值。

日期与时间类型

timestamp
datetime 实际项目中尽量用 datetime类型。它包含完整的日期和时间信息。

  1. -- 修改字段类型语句
  2. ALTER TABLE demo.goodsmaster
  3. MODIFY COLUMN price DOUBLE;
  4. -- 计算字段合计函数:
  5. SELECT SUM(price)
  6. FROM demo.goodsmaster;

总结

在定义数据类型时,如果确定是整数,就用int;如果是小数,一定用定点数类型decimal;如果是字符串 只要不是主键 text; 如果是日期与时间 datetime;

  • 整数 int
  • 小数 decimal
  • 字符串 text
  • 日期与时间 datetime