在 MySQL 中存储货币价值的最佳数据类型是什么?

我们可以在 MySQL 中以十进制 (value1,value2) 存储货币值。这里,value1 是包含 value2 的总范围。value2 指定小数点后的位数。为了理解这个概念,下面给出了步骤。

首先使用 create 命令创建一个表。

mysql> CREATE table MoneyDemo
-> (
-> Id int,
-> Money decimal(10,2)
-> );

从上面的命令可以看出,十进制值只有10位,小数点后也只有2位。

创建表后,在插入命令的帮助下插入一些记录。这给出如下 -

mysql> INSERT into MoneyDemo values(1,98777445.50);

mysql> INSERT into MoneyDemo values(2,12345678.00);

mysql> INSERT into MoneyDemo values(3,88888888.50);

如果上述命令中插入的数字超过 10 位,则会生成错误消息。这可以在下面看到 -

mysql> INSERT into MoneyDemo values(3,8888888888.50);
ERROR 1264 (22003): Out of range value for column 'Money' at row 1

表中的所有记录都可以在select语句的帮助下显示出来。对此的查询如下 -

mysql> SELECT * from MoneyDemo;

得到的输出如下

+------+-------------+
| Id   | Money       |
+------+-------------+
| 1    | 98777445.50 |
| 2    | 12345678.00 |
| 3    | 88888888.50 |
+------+-------------+
3 rows in set (0.00 sec)