DECIMAL NUMERIC

DECIMALNUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值,例如货币数据。当声明该类型的列时,可以(并且通常要)指定精度和标度;例如:

salary DECIMAL(5,2)

在该例子中,5是精度,2是标度。精度表示保存值的主要位数,标度表示小数点后面可以保存的位数。

MySQL 5.1中以二进制格式保存DECIMALNUMERIC值。

标准SQL要求salary列能够用5位整数位和两位小数保存任何值。因此,在这种情况下可以保存在salary列的值的范围是从-999.99999.99

在标准SQL中,语法DECIMAL(M)等价于DECIMAL(M,0)。同样,语法DECIMAL等价于DECIMAL(M,0),可以通过计算确定M的值。在MySQL 5.1中支持DECIMALNUMERIC数据类型的变量形式。M默认值是10

DECIMALNUMERIC的最大位数是65,但具体的DECIMALNUMERIC列的实际范围受具体列的精度或标度约束。如果此类列分配的值小数点后面的位数超过指定的标度允许的范围,值被转换为该标度。(具体操作与操作系统有关,但一般结果均被截取到允许的位数)

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 |
+--------+---------+



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值