开发中遇到一个数据库字段问题

大牛不必浪费时间了,适合初学者。

今天遇到一个问题,数据库字段问题。

有一张表存储着用户消费记录,设计表时使用的是整形,后来增加需求,需要对业务做些改动,改过之后测试发现存储0.2,0.51这样的浮点类型无法保存上,结果是0,1之类的,经过调试发现数据库字段问题,于是修改了字段类型,sql语句:

ALTER TABLE `db_action`.`money_record` CHANGE `c_money` `c_money` decimal(11,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '商币变动'

从int类型改为了decimal(11,2),整数11位,小数保留两位。

于是就去执行,发现报错了。

查资料:

unsigned

既为非负数,用此类型可以增加数据长度! 例如如果 tinyint最大是127,那 tinyint unsigned 最大 就可以到 127 * 2 unsigned 属性只针对整型,而binary属性只用于char 和varchar。

类型

说明

tinyint

非常小的整数

smallint

较小整数

mediumint

中等大小整数

int

标准整数

bigint

较大整数

float

单精度浮点数

double

双精度浮点数

decimal

一个串的浮点数

每种数值类型的名称和取值范围如表2所示。

类型说明

取值范围

tinyint[(m)]

有符号值:-128 到127(- 27 到27 - 1)无符号值:0到255(0 到28 - 1)1个字节

smallint[(m)]

有符号值:-32768 到32767(- 215 到215 - 1)无符号值:0到65535(0 到21 6 - 1)2个字节

mediumint[(m)]

有符号值:-8388608 到8388607(- 22 3 到22 3 - 1 )无符号值:0到16777215(0 到22 4 - 1)3个字节

int[(m)]

有符号值:-2147683648 到2147683647(- 231 到231- 1)无符号值:0到4294967295(0 到232 - 1)4个字节

bigint[(m)]

有符号值:-9223372036854775808 到9223373036854775807(- 263到263-1)无符号值:0到18446744073709551615(0到264 – 1) 8个字节

float[(m, d)]

最小非零值:±1.175494351e - 38

double[(m,d)]

最小非零值:±2.2250738585072014e - 308

decimal (m, d)

可变;其值的范围依赖于m 和d

表2:数值列类型的取值范围

各种类型值所需的存储量如表3所示。

类型说明

存储需求

tinyint[(m)]

1字节

smallint[(m)]

2字节

mediumint[(m)]

3字节

int[(m)]

4字节

bigint[(m)]

8字节

float[(m, d)]

4字节

double[(m, d)]

8字节

decimal (m, d)

m字节(mysql < 3.23),m+2字节(mysql > 3.23 )

表3:数值列类型的存储需求

mysql 提供了五种整型: tinyint、smallint、mediumint、int和bigint。int为integer的缩写。这些类型在可表示的取值范围上是不同的。 整数列可定义为unsigned从而禁用负值;这使列的取值范围为0以上。各种类型的存储量需求也是不同的。取值范围较大的类型所需的存储量较大。

mysql 提供三种浮点类型: float、double和decimal。与整型不同,浮点类型不能是unsigned的,其取值范围也与整型不同,这种不同不仅在于这些类型有最大 值,而且还有最小非零值。最小值提供了相应类型精度的一种度量,这对于记录科学数据来说是非常重要的(当然,也有负的最大和最小值)。

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2015-08-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hongten

java中的移位运算符:<<,>>,>>>总结

value >>> num     --   num 指定要移位值value 移动的位数。

1075
来自专栏ml

排序

排序法 平均时间 最差情形 稳定度 额外空间 冒泡 O(n2)     O(n2) 稳定 O(1) 交换     O(n2)     O(n2) ...

3135
来自专栏King_3的技术专栏

leetcode-179-Largest Number(理解规则,自定义cmp函数进行排序)

1、这道题给定一个vector,里面存放着int类型的非负整数,要求把这些非负整数拼起来,尽可能拼成一个最大的整数。

1163
来自专栏JackeyGao的博客

Leetcode 算法 -4. Median of Two Sorted Arrays

解题思路: 先把列表碾平 , 由于两个列表元素类型相同直接相加即可. 然后排序. 计算中间位置, 可以通过判断奇偶数来分别处理开始index和结束index....

633
来自专栏PHP在线

php的字符串常用函数

1. str_word_count 统计单词个数 2. count_chars 得到字符串里面字符的有关情况 3. str_len 得到字符串长度,就是...

3366
来自专栏指尖下的Android

二进制的运算

在计算机中存储字节是定长的,即我们8、16、32位等等,6的二进制位为110,但如果在8位计算机中是00000110,高位补零

993
来自专栏Python爬虫实战

算法:括号匹配问题

还记得有一次笔试题,有一道括号匹配的算法题,当时没有学习数据结构和算法,思路很模糊,后来了解一些数据结构之后就有思路了,今天将解法写出来。

801
来自专栏大数据学习笔记

Java程序设计(Java9版):第2章 数据类型与运算符(Data types and Operators)

第2章 数据类型与运算符(Data types and Operators) I think everybody in this country should ...

1995
来自专栏Jackson0714

C# 正则表达式

1032
来自专栏Jackson0714

C# 正则表达式

3975

扫码关注云+社区