整数类型
TINYINT SMALLINT MEDIUMINT INT(INTEGER) BIGINT
浮点数类型和定点数类型
浮点数和定点数类型的特点是可以处理小数。
FLOAT 单精度 DOUBLE 双精度
REAL 默认 DOUBLE SQL模式设定为启用 REAL_AS_FLOAT 那么 real 是float;
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类型。它包含完整的日期和时间信息。
-- 修改字段类型语句
ALTER TABLE demo.goodsmaster
MODIFY COLUMN price DOUBLE;
-- 计算字段合计函数:
SELECT SUM(price)
FROM demo.goodsmaster;
总结
在定义数据类型时,如果确定是整数,就用int;如果是小数,一定用定点数类型decimal;如果是字符串 只要不是主键 text; 如果是日期与时间 datetime;
- 整数 int
- 小数 decimal
- 字符串 text
- 日期与时间 datetime