在 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)