MySQL 数据类型总结及选取准则

整数

整数有 TINYINT, SMALLINT, MEDIUMINT, INT 和 BIGINT 类型。

占用    8          ,  16            24,            32,     64      bit。

为整数指定长度没有意义,如 INT(11) ,它能存储的还是 32 位数据。

实数

DECIMAL 运算没有精度丢失。

FLOAT,DOUBLE 运算有精度丢失。

DECIMAL 可以存储准确的小数和整数位,如 DECIMAL(18,9)

由于 DECIMAL 在空间占用上比较多,并且运算复杂,一般只用来存储不允许精度丢失,并且要得到准确的小数位数的场合,比如说金融数据。

String 类型

1. VCHAR 类型和 CHAR 类型

VARCHAR 用来存储变长的字符数据,并且需要额外的一到两个字节来存储字符数据的长度。

VARCHAR 一般用来存储 5000 字符以下的数据。

CHAR 用来存储定长的字符数据。适用于列的长度都非常短或者存储数据的长度近似一致的场合。如 MD5,存储 Y,N 数据。

2. BLOB 和 TEXT 类型

BLOB 和 TEXT 用在存储大量数据(包括二进制和字符型)的场合。

两者的区别在于,BLOB 存储的是二进制数据,而 TEXT 存储的是字符数据

TEXT 一般用来存储 5000 字符以上的数据,对于这样的数据,应该单独独立出一张表,用 id 对应,以免影响母表的索引效率。

3. 在一些场合,可以使用 enum 来代替 STRING 类型

DATE 和 TIME 类型

DATE 的精度是秒,格式是 YYYYMMDDHHMMSS,和时区无关。

存储范围: 1001-9999

TIMESTAMP 的精度是S,存储的是从1970.1.1 零点到当前过去的秒数。依赖于时区。

原文地址:https://www.cnblogs.com/reycg-blog/p/7918413.html