您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > MySQL

3.48. MySQL 里记录货币用什么字段类型?

时间:12-14来源:作者:点击数:
CDSY,CDSY.XYZ

NUMERIC 和 DECIMAL 类型被 MySQL 实现为同样的类型,这在 SQL 92 标准允许。他们被用于保存值,该值的准确精度是极其重要的值,例如与金钱有关的数据。当声明一个类是这些类型之一时,精度和规模的能被(并且通常是)指定。例如:

salary DECIMAL(9,2)

在这个例子中,9(precision) 代表将被用于存储值的总的小数位数,而 2(scale) 代表将被用于存储小数点后的位数。

因此,在这种情况下,能被存储在 salary 列中的值的范围是从 -9999999.99 到 9999999.99。在 ANSI/ISO SQL 92 中,句法 DECIMAL(p) 等价于 DECIMAL(p,0)。

同样,句法 DECIMAL 等价于 DECIMAL(p,0),这里实现被允许决定值 p。MySQL 当前不支持 DECIMAL/NUMERIC 数据类型的这些变种形式的任一种。

这一般说来不是一个严重的问题,因为这些类型的主要益处得自于明显地控制精度和规模的能力。

DECIMAL 和 NUMERIC 值作为字符串存储,而不是作为二进制浮点数,以便保存那些值的小数精度。

一个字符用于值的每一位、小数点(如果 scale>0)和 - 符号(对于负值)。如果 scale 是0,DECIMAL 和 NUMERIC 值不包含小数点或小数部分。

DECIMAL 和 NUMERIC 值得最大的范围与 DOUBLE 一样,但是对于一个给定的 DECIMAL 或 NUMERIC 列,实际的范围可由制由给定列的 precision 或 scale 限制。

当这样的列赋给了小数点后面的位超过指定scale所允许的位的值,该值根据 scale 四舍五入。

当一个 DECIMAL 或 NUMERIC 列被赋给了其大小超过指定(或缺省的)precision 和 scale 隐含的范围的值,MySQL 存储表示那个范围的相应的端点值。

我希望本文可以帮助你提升技术水平。那些,感觉学的好难,甚至会令你沮丧的人,别担心,我认为,如果你愿意试一试本文介绍的几点,会向前迈进,克服这种感觉。这些要点也许对你不适用,但你会明确一个重要的道理:接受自己觉得受困这个事实是摆脱这个困境的第一步。

CDSY,CDSY.XYZ
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐