当大家创建一个表时,大家可以为小数字段指定精度和范围。例如:
CREATE TABLE `product` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `price` decimal(10,2) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在这个例子中,大家创建了一个名为product
的表,并且指定了一个price
字段,它的精度为10,范围为2。这意味着价格必须是小于一百万且最多有两个小数点的数字。
大家可以把一个数字直接存入这个字段,需要注意的是,如果输入的数字的小数位数比定义的范围小,那么Mysql会自动把它补齐为指定值。例如如果你输入了4.5,Mysql会自动把它存储为4.50。
如果大家想要更改小数存储范围和精度,大家可以使用 ALTER TABLE 语句来修改表的列属性,例如:
ALTER TABLE product MODIFY price decimal(20,4);
在这个例子中,大家把price
字段的精度范围改变为20,范围为4。
在Mysql的SELECT语句中,大家可以使用ROUND函数来格式化数字的小数位数。例如:
SELECT ROUND(price, 1) as price FROM product;
在这个例子中,大家将使用ROUND函数来返回一列带有1位小数的price
字段。
总结一下,Mysql提供了许多方式来控制数字的小数点后面的位数。在创建表时,您可以指定字段的精度和范围。您也可以使用ALTER TABLE语句来修改表的列属性。并且,在SELECT语句中,您可以使用ROUND函数来格式化数字的小数位数。