/*******************************
  *FileName:  MySQL字段类型汇总及用法
  *Author:    weibo
  *Version:   v1.0
  *Date:      2016.5.14
  *Description:  MySQL字段类型汇总及用法
**********************************/

目录

 一、整数类型

二、浮点数类型和定点数类型

三、文本类型

四、日期与时间类型

五、总结


 一、整数类型

整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT,它们的区别如下表所示:

二、浮点数类型和定点数类型

浮点数类型有 FLOAT、DOUBLE、REAL,它们的区别如下表所示:

注意:

(1)REAL 默认就是 DOUBLE。如果你把 SQL 模式设定为启用“REAL_AS_FLOAT”,那么,MySQL 就认为 REAL 是 FLOAT,启用命令:SET sql_mode = “REAL_AS_FLOAT”;

(2)浮点数类型不精确。为什么不精确将在下节讲解。

三、文本类型

文本类型有CHAR、VARCHAR、TEXT、ENUM 和 SET 等,它们的区别如下表所示:

注意: TEXT由于实际存储的长度不确定,MySQL 不允许 TEXT 类型的字段做主键。遇到这种情况,你只能采用 CHAR(M),或者 VARCHAR(M)。

四、日期与时间类型

日期时间类型有 YEAR(年)、TIME(时间)、DATE(日期),DATETIME和TIMESTAMP 类型,它们的区别如下表所示:

 注意:

(1)为了确保数据的完整性和系统的稳定性,优先考虑使用 DATETIME 类型。

(2)为什么时间类型 TIME 的取值范围不是 -23:59:59~23:59:59 呢?原因是 MySQL 设计的 TIME 类型,不光表示一天之内的时间,而且可以用来表示一个时间间隔,这个时间间隔可以超过 24 小时。

五、总结

选字段类型小技巧
(1)在定义数据类型时,如果确定是整数,就用 INT;
(2)如果是小数,一定用定点数类型 DECIMAL;
(3)如果是字符串,只要不是主键,就用 TEXT;
(4)如果是日期与时间,就用 DATETIME。

更多推荐

MySQL字段类型汇总及用法(超详细)