在 MySQL 中,哪种数据类型最适合存储货币值?

mysqlmysqli database

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

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

mysql> CREATE table MoneyDemo
-> (
-> Id int,
-> Money decimal(10,2)
-> );
Query OK, 0 rows affected (0.46 sec)

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

创建表后,使用 insert 命令插入一些记录。如下所示 −

mysql> INSERT into MoneyDemo values(1,98777445.50);
Query OK, 1 row affected (0.13 sec)

mysql> INSERT into MoneyDemo values(2,12345678.00);
Query OK, 1 row affected (0.18 sec)

mysql> INSERT into MoneyDemo values(3,88888888.50);
Query OK, 1 row affected (0.20 sec)

如果上述命令中插入的数字超过 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)

相关文章