MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL DECIMAL

此数据类型用于存储 确切的数值。它类似于INT数据类型,用于保留精确度的列,例如工资,价格等会计系统中的货币数据。MySQL始终使用 binary格式来存储DECIMAL值

语法

以下是用于定义数据类型为DECIMAL的列的语法:
column_name DECIMAL (M, D);
让我们讨论参数M和D:
M: 这是精度,代表为值存储的最大有效位数。 M的范围必须在1到65之间。此处,M的最大值为65,这表示DECIMAL值的计算不超过65位。 D: 这是一个刻度,代表小数点M右边的位数。D的范围必须在0到30之间,并且不应大于M。
上面的声明告诉您,该列可以存储M位数字,其中D位小数表示这取决于精度和小数位数。如果未定义D,则默认值为0。如果未指定M,则默认值为10。我们也可以使用 DEC,FIXED,NUMERIC 关键字代替DECIMAL,因为它们是对此的同义词数据类型。
由于DECIMAL与INT数据类型相似,因此它也可以接受 UNSIGNED ZEROFILL 属性。如果我们使用无符号,则DECIMAL值不能接受负值。如果用户使用ZEROFILL属性,则MySQL会将M的值乘以0直到列定义中指定的宽度。

MySQL DECIMAL存储

MySQL 使用二进制格式将值存储在DECIMAL列中,该列的9个十进制数字的每个倍数需要4个字节。它分别为每个值的整数和小数部分分配存储要求。 MySQL将前九个十进制数字打包成四个字节,其余数字(剩余数字)需要4个字节的分数。
剩余(剩余)数字所需的存储空间可以通过下表了解:
数字 字节数
0 0
1-2 1
3-4 2
5-6 3
7-9 4
我们可以通过以下示例理解上表的说明:
假设DECIMAL(20,9)的小数部分为9位,而小数部分为20-9 = 11位整数部分。接下来,小数部分占4个字节,整数部分的前9个数字占4个字节,剩余的2个数字占一个字节。因此,上述数据类型列总共需要9个字节。

MySQL DECIMAL示例

让我们首先在数据库中创建一个新表" orders ",该表包含三列: order_id,prod_name和price 。在命令提示符下执行以下查询:
mysql> CREATE TABLE orders (order_id int NOT null PRIMARY KEY, prod_name VARCHAR(35) null, price DECIMAL(15,3) NOT null);
接下来,我们需要将数据插入到新创建的表顺序中。执行以下查询,在表中插入三个记录:
mysql> INSERT INTO orders(order_id, prod_name, price) VALUES (1,'Laptop', 15000.35), (2, 'iPhone', 20000.32), (3, 'Mouse', 200.32);
最后,运行以下语句以获取"订单"表:
mysql> SELECT * FROM orders;
我们将得到如下输出:
MySQL DECIMAL
现在,我们要通过如下修改价格列来查看ZEROFILL属性的使用:
mysql> ALTER TABLE orders MODIFY price DECIMAL(15, 3) zerofill;
现在,再次运行以下语句以获取"订单"表:
mysql> SELECT * FROM orders;
我们将获得以下输出,其中在价格列中添加了多个零:
MySQL DECIMAL
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4