mysql 货币字段类型的存储

loat类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理。这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储是0,同样我存取货币为12.00,实际存储是12.
幸好mysql提供了两个数据类型:numeric和decimal,这两种数据类型可以轻松解决上面的问题:
NUMERIC 和 DECIMAL 类型被 MySQL 以同样的类型实现,这在 SQL92 标准中是允许的。他们用于保存对准确精度有重要要求的值,例如与金钱有关的数据。当以它们中的之一声明一个列时,精度和数值范围可以(通常是)被指定;例 如: 
salary DECIMAL(5,2) 
在这个例子中,5 (精度(precision)) 代表重要的十进制数字的数目,2 (数据范围(scale)) 代表在小数点后的数字位数。在这种情况下,因此,salary 列可以存储的值范围是从 -99.99 到 99.99。(实际上 MySQL 在这个列中可以存储的数值可以一直到 999.99,因为它没有存储正数的符号)。 
译者注: 
M 与D 对DECIMAL(M, D) 取值范围的影响 
类型说明 取值范围(MySQL < 3.23) 取值范围(MySQL >= 3.23) 
DECIMAL(4, 1) -9.9 到 99.9 -999.9 到 9999.9 
DECIMAL(5, 1) -99.9 到 999.9 -9999.9 到 99999.9 
DECIMAL(6, 1) -999.9 到 9999.9 -99999.9 到 999999.9 
DECIMAL(6, 2) -99.99 到 999.99 -9999.99 到 99999.99 
DECIMAL(6, 3) -9.999 到 99.999 -999.999 到 9999.999 
# 在MySQL 3.23 及以后的版本中,DECIMAL(M, D) 的取值范围等于早期版本中的DECIMAL(M + 2, D) 的取值范围。 
还有一种数据类型也是比较棒的: 那就是LongBlob,这种数据类型可以直接把图像文件存到数据库中!

时间: 2024-08-10 15:03:46

mysql 货币字段类型的存储的相关文章

MySQL 常用字段类型,介绍及其建表使用方法经验分享

由于工作的公司没有专业的DBA又经常需要建立各种各种的表来满足自己的业务逻辑,所以经常查看MySQL 手册或者谷歌查看相关资料,所以本人就根据我的工作经验和相关资料来介绍一下MySQL各种字段类型及其使用.(由于本人还算是菜鸟哪里写的不对请多多指正,有兴趣的可以探讨一下) MySQL字段类型 int型包括(tinyint, smallint, mediumint, int, bigint) tinyint是1个字节表达范围就是2的8次方(-128-128) 或者(0-255) 很多人不明白为什么

Mysql中字段类型之时间戳大坑2

本文的内容依旧是讨论mysql字段类型为时间戳timestamp的问题,在遇到了之前的那个问题之后,今天测试人员又给我提了一个bug,是在前端页面提交会议表单的时候,选择了一个会议时间(2059年的时间),报了一个错,服务器直接炸掉了,抛出定制的错误信息,然后我瞢逼了一圈,感觉代码没有写错,数据库中的字段类型也都是正确的,然后看看抛出的异常信息,是mysql数据库抛出的异常,提示时间格式有问题,但是看了看,也没有什么问题. 自己尝试了一下选择一个比较正常一点的时间,表单可以正常提交,也没有什么问

Oracle字段类型及存储(一)

Oracle中2000个byte,并不是2000个字符的意思,1个字符在Oracle中可能是1个byte到4个byte不等,需看数据库字符集的设置了. 对GBK字符集而言,ASCII码中128个字符使用1个字节进行存储,其它字符使用双字节存储:对UTF8字符集而言,ASCII码中128个字符使用1个字节进行存储,其它采用两个或三个字节进行存储,四个字节存储的是极少使用字符: 数据库中有一个参数NLS_LENGTH_SEMANTICS,这个参数有两个取值CHAR和BYTE.当为CHAR时字符类型的

Mysql修改字段类型

mysql 修改字段长度 alter table news  modify column title varchar(130); alter table 表名 modify column 字段名 类型; 如:news 表里的title  字段 原来长度是 100个字符,现长度要改成130个字符 alter table news modify column title varchar(130); 原文地址:https://www.cnblogs.com/-zrj/p/9504009.html

mysql 修改字段类型

ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型定义; alter table aos_orgn modify column CGUID varchar(20), modify column CPARENTID varchar(20),modify column CCREATORID varchar(20);

MySQL 数据库字段类型使用说明

简介 MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型. 数值类型 下列用于描述的代码字母中: M表示最大的显示尺寸.最大的合法的显示尺寸是 255 .(注意是显示尺寸是存储数字的位数,不是存储空间大小,数值列创建时,MySQL将为存储数据分配合适大小的空间,从1个字节到8个字节不等) D适用于浮点类型并且指出跟随在十进制小数点后的数的位数.最大可能的值是30,但是应该不大于M-2. 方括号(“[”和“]”)指出可选的类型修饰符的部分. 注意,如果你指

MySQL 修改字段类型或长度

mysql> alter table 表名 modify column 字段名 类型; 例如 数据库中deploy_updateapp 表 status 字段是varchar(30) 修改类型可以用(谨慎修改类型,可能会导致原有数据出错) mysql> alter table deploy_updateapp modify column status varchar(2000); 修改长度可以用(修改长度,要保证不短与已有数据,以保证原有数据不出错) mysql> alter table

mysql 常用字段类型

tinyint[(m)] [unsigned] [zerofill] 1字节 极小整数,数据类型用于保存一些范围的整数数值范围: 有符号: -128 - 127. 无符号: - 255 特别的: MySQL中无布尔值,使用tinyint(1)构造. smallint 2字节 小整数 有符号: ~ 32768 无符号: ~ 65535 mediumint 3字节 有符号: -8388608 ~ 8388608 无符号: 0 ~ 1677215 int[(m)][unsigned][zerofill

修改MySQL中字段的类型和长度

MySQL修改字段类型的命令是: mysql> alter table 表名 modify column 字段名 类型; 假设在MySQL中有一个表为:address,有一个字段为city 初始情况下为varchar(30),那么修改类型为char可以在MySQL控制台输入: alter table address modify column city char(30); 注意修改类型应该谨慎,因为类型之间数据需要转换,可能会导致数据出错或者丢失 如果要将varchar(30)长度进行扩展可以使