本文主要是介绍DECIMAL NUMERIC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
DECIMAL和NUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值,例如货币数据。当声明该类型的列时,可以(并且通常要)指定精度和标度;例如:
salary DECIMAL(5,2)
在该例子中,5是精度,2是标度。精度表示保存值的主要位数,标度表示小数点后面可以保存的位数。
在MySQL 5.1中以二进制格式保存DECIMAL和NUMERIC值。
标准SQL要求salary列能够用5位整数位和两位小数保存任何值。因此,在这种情况下可以保存在salary列的值的范围是从-999.99到999.99。
在标准SQL中,语法DECIMAL(M)等价于DECIMAL(M,0)。同样,语法DECIMAL等价于DECIMAL(M,0),可以通过计算确定M的值。在MySQL 5.1中支持DECIMAL和NUMERIC数据类型的变量形式。M默认值是10。
DECIMAL或NUMERIC的最大位数是65,但具体的DECIMAL或NUMERIC列的实际范围受具体列的精度或标度约束。如果此类列分配的值小数点后面的位数超过指定的标度允许的范围,值被转换为该标度。(具体操作与操作系统有关,但一般结果均被截取到允许的位数)。
drop table if exists test;/*==============================================================*/
/* Table: test */
/*==============================================================*/
create table test
(salary decimal(5,2),consume numeric(5,3)
);/* salary 总共有5位,小数位占2为,整数位占3位.consume总共有5位,小数位占3为,整数位占2位.*/insert test(salary, consume) values(16.6, 56.12);select * from test;+--------+---------+
| salary | consume |
+--------+---------+
| 16.60 | 56.120 |
+--------+---------+
这篇关于DECIMAL NUMERIC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!