Mysql数据库的数据类型介绍与经验总结-系列04

mysql数据类型介绍:

MySQL常见的数据类型如下:

1、整数类型(TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT)

2、浮点数类型( FLOAT、DOUBLE、REAL)

定点数类型:DECIMAL

浮点数类型是把十进制数转换成二进制数存储,DECIMAL 则不同,它是把十进制数的整数部分和小数部分拆开,分别转换成十六进制数,进行存储。这样,所有的数值,就都可以精准表达了,不会存在因为无法表达而损失精度的问题。金融行业选用。

3、文本类型:TEXT、CHAR、VARCHAR、ENUM 和 SET 等文本类型

CHAR(M):固定长度字符串。CHAR(M) 类型必须预先定义字符串长度。如果太短,数据可能会超出范围;如果太长,又浪费存储空间。VARCHAR(M): 可变长度字符串。

VARCHAR(M) 也需要预先知道字符串的最大长度,不过只要不超过这个最大长度,具体存储的时候,是按照实际字符串长度存储的。TEXT:字符串。系统自动按照实际长度存储,不需要预先定义长度。

ENUM: 枚举类型,取值必须是预先设定的一组字符串值范围之内的一个,必须要知道字符串所有可能的取值。

SET:是一个字符串对象,取值必须是在预先设定的字符串值范围之内的 0 个或多个,也必须知道字符串所有可能的取值。

TINYTEXT:255 字符(这里假设字符是 ASCII 码,一个字符占用一个字节,下同)。

TEXT: 65535 字符。

MEDIUMTEXT:16777215 字符。

LONGTEXT: 4294967295 字符(相当于 4GB)。

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

4、日期类型:DATETIME、YEAR(年)、TIME(时间)、DATE(日期),以及 TIMESTAMP 类型

 最后的经验总结:

在定义数据类型时,

①如果确定是整数,就用 INT;

②如果是小数,一定用定点数类型 DECIMAL(因为浮点类型存在精度丢失问题);

③如果是字符串,只要不是主键,就用 TEXT;

④如果是日期与时间,就用 DATETIME。整数:INT。小数:DECIMAL。

⑤字符串:TEXT。

⑥日期与时间:DATETIME。

补充第②点的验证,如果采用浮点数,结果如下:

Guess you like

Origin blog.csdn.net/LB_Captain/article/details/121318546