MySQL中的定点数类型只有DECIMAL一种类型。DECIMAL类型也可以使用(M,D)进行表示,其中,M被称为精度,是数据的总位数;D被称为标度,表示数据的小数部分所占的位数。定点数在MySQL内部是以字符串的形式进行存储的,它的精度比浮点数更加精确,适合存储表示金额等需要高精度的数据。
DECIMAL(M,D)类型的数据的最大取值范围与DOUBLE类型一样,但是有效的数据范围是由M和D决定的。而DECIMAL的存储空间并不是固定的,由精度值M决定,总共占用的存储空间为M+2个字节。
使用定点数类型表示数据时,当数据的精度超出了定点数类型的精度范围时,则MySQL同样会进行四舍五入处理。
当DECIMAL类型不指定精度和标度时,其默认为DECIMAL(10,0)。
创建数据表t8,在t8数据表中包含两个字段,即d1和d2,两个字段的类型分别为DECIMAL和DECIMAL(5,2)。也就是说,d1字段使用默认的精度和标度,d2字段的精度为5,标度为2。
- mysql> CREATE TABLE t8 (
- -> d1 DECIMAL,
- -> d2 DECIMAL(5, 2)
- -> );
- Query OK, 0 rows affected (0.56 sec)
接下来,查看t8数据表的建表信息。
mysql> SHOW CRE