十进制数据类型怎么在MySQL中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
MySQL <代码>十进制> 代码数据类型用于在数据库中存储精确的数值。我们经常将小数点<代码> 代码>数据类型用于保留准确精确度的列,例如会计系统中的货币数据。
要定义数据类型为小数点<代码> 代码>的列,请使用以下语法:
column_name 小数(p、D);
在上面的语法中:
- <李>
<代码> p> 代码是表示有效数字数的精度。<代码> p> 代码范围为<代码> 1 ? 65 代码>。
李> <李><代码> D 代码>是表示小数点后的位数。<代码> D> 代码的范围是<代码> 0 代码> ~ <代码> 代码> 30 .MySQL要求<代码> D 代码>小于或等于(<代码> & lt;=> 代码)<代码> p> 代码。
李><代码>小数(p D) 代码>表示列可以存储<代码> D> 代码位小数的<代码> p> 代码位数。十进制列的实际范围取决于精度和刻度。
与INT数据类型一样,小数点<代码> 代码>类型也具有<代码>无符号代码>和<代码>补零代码>属性。如果使用<代码>无符号代码>属性,则<代码>十进制无符号> 代码的列将不接受负值。
如果使用<代码>补零> 代码,MySQL将把显示值填充到<代码> 0 代码>以显示由列定义指定的宽度。另外,如果我们对<代码>十进制> 代码列使用<代码>填零> 代码,MySQL将自动将<代码>无符号代码>属性添加到列。
以下示例使用小数点<代码> 代码>数据类型定义的一个叫作<代码> 代码>的金额列。
amount 小数(6 2);
在此示例中,<代码> 代码>数量列最多可以存储<代码> 代码> 6位数字,小数位数为<代码> 2> 代码位;因此,<代码> 代码>列的范围是从-9999.99 <代码> 代码>到<代码> 9999.99 代码>。
MySQL允许使用以下语法:
column_name 小数(p);
这相当于:
column_name 小数(p, 0),
在这种情况下,列不包含小数部分或小数点。
此外,我们甚至可以使用以下语法。
column_name 小数;
在这种情况下,<代码> p> 代码的默认值为10 <代码> 代码>。
MySQL十进制存储
MySQL分别为整数和小数部分分配存储空间。MySQL使用二进制格式存储<代码>十进制> 代码值。它将<代码> 代码> 9位数字包装成<代码> 代码> 4个字节。
对于每个部分,需要<代码> 代码> 4个字节来存储<代码> 代码> 9位数的每个倍数。剩余数字所需的存储如下表所示:
剩余数字位001-213-425-637-94例如,<代码>小数(19日9)代码>对于小数部分具有<代码> 代码> 9位数字,对于整数部分具有<代码> 19> 代码位=<代码> 代码> 10位数字,小数部分需要<代码> 代码> 4个字节。整数部分对于前<代码> 代码> 9位数字需要<代码> 代码> 4个字节,<代码> 代码> 1个剩余字节需要<代码> 代码> 1个字节。<代码>小数(19日9)> 代码列总共需要<代码> 代码> 9个字节。
MySQL十进制数据类型和货币数据
经常使用小数点<代码> 代码>数据类型的货币数据,如价格,工资,账户余额等。如果要设计一个处理货币数据的数据库,则可参考以下语法——
amount 小数(19日2);
但是,如果您要遵守公认会计原则(GAAP)规则,则货币栏必须至少包含<代码> 4> 代码位小数,以确保舍入值不超过<代码> 代码> 0.01美元。在这种情况下,应该定义具有<代码> 4> 代码位小数的列,如下所示:
amount 小数(19日4);
MySQL十进制数据类型示例
首先,创建一个名为<代码> test_order> 代码的新表,其中包含三列:id <代码> 代码>,<代码>描述代码>和<代码> 代码>成本。
CREATE TABLE test_order ( ,id INT  AUTO_INCREMENT PRIMARY 键, ,description VARCHAR (255), 4,cost 小数(19日),NOT NULL );
第二步,将资料插入test_order表。
INSERT INTO test_order(描述、成本) 值(& # 39;自行车# 39;,,500.34),(& # 39;座位# 39;,10.23),(& # 39;打破# 39;,5.21);
第三步,从test_order表查询数据。
SELECT *,得到test_order
<代码>查询结果:
代码>
<代码>