MySQL数值类型存储长度及范围

 

MySQL设置数值型列时,需要考虑到数值的范围,所以,数值类型就必然需要考虑,以下为MySQL数值类型的存储长度,当然存储长度基本决定着其值域范围。本文节选自MySQL官方网站,仅做汇总摘要整理。

一、TINYINT
1个字节存储,范围有符号-128-127,无符号0-255。还有一个类型是BOOL型,相当于TINYINT(1)。

二、SMALLINT
2个字节存储,范围带符号的范围是-32768到32767。无符号的范围是0到65535。

三、MEDIUMINT
3个字节存储,范围带符号的范围是-8388608到8388607。无符号的范围是0到16777215。

四、INT, INTEGER
4个字节存储,范围带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

五、BIGINT
8个字节存储,范围带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。

六、FLOAT(p)
如果0 <= p <= 24为4个字节, 如果25 <= p <= 53为8个字节

七、FLOAT
4个字节存储,范围允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。

八、DOUBLE [PRECISION]
8个字节存储,范围允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308。

九、DECIMAL(M,D), NUMERIC(M,D)
压缩的"严格"定点数,变长类型。M是小数位数(精度)的总数,D是小数点(标度)后面的位数。小数点和(负数)的'-'符号不包括在M中。如果D是0,则值没有小数点或分数部分。DECIMAL整数最大位数(M)为65。支持的十进制数的最大位数(D)是30。如果D被省略, 默认是0。如果M被省略, 默认是10。如果指定UNSIGNED,不允许负值。

十、BIT(M)
大约(M+7)/8个字节存储,M表示每个值的位数,范围为从1到64。如果M被省略, 默认为1

时间: 2024-09-23 19:27:20

MySQL数值类型存储长度及范围的相关文章

MySQL数值类型在binlog中需要注意的细节(r12笔记第69天)

    MySQL里的数值类型分得很细,光整型数据就有多种数据类型.tinyint,smallint,mediumint,int(integer),还有范围最大的bigint,它们对应的数值范围也大大不同,大体来说就是下面的数值范围,从有符号数和无符号数来区别对待. 类型名称 有符号数(signed) 无符号数(Unsigned) tinyint -129~127 0~255 smallint -32768~32767 0~65535 mediumint -8388608~8388607 0~1

Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)_Mysql

在DBMS中线要创建数据库test,table bintest,data字段数据类型用LONGBLOB即可测试 //测试文件c:\\test.iso,你可以找任何一个文件修改为即可,我找的是一个exe程序,修改为test.iso而已 //最大测试过加入文件大小为650M(一个正真的iso文件) //注意:还要修改my.ini文件中的max_allowed_packet字段,我设置的是 复制代码 代码如下: //max_allowed_packet = 1024M //#define host "

Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)_Mysql

#include "stdafx.h" //是前一篇的姊妹篇 //代码来自网络,我学习整理了一下,测试通过,下面的参数 //需要设置为你自己的 //在DBMS中线要创建数据库www,table www,file字段数据类型用LONGTEXT即可测试 //测试文件c:\\test.iso,你可以找任何一个文件修改为即可,我找的是一个exe程序,修改为test.iso而已 //最大测试过加入文件大小为650M(一个正真的iso文件) //注意:还要修改my.ini文件中的max_allow

MYSQL列类型参考

mysql|参考    本附录介绍MySQL提供的每种列类型.关于利用每种类型的详细说明请参阅第2 章.除非另有说明,否则所列出的类型早在MySQL3.21.0 中就已经有了.    按下列约定给出类型名说明:    方括号( [ ]) 可选信息.    M 最大显示宽度.除非另有说明,否则M 应该是一个1到255 之间的整数.    D 有小数部分的类型的小数位数.D 为一个0 到30 之间的整数.D 应该小于等于M - 2.否则,M 的值将调整为D + 2.    在ODBC 术语中,M 和

二进制-mysql 数据库中 blob 类型存储数字 无法正常插入更新

问题描述 mysql 数据库中 blob 类型存储数字 无法正常插入更新 事情是这样的,在Mysql数据库中有个字段是blob类型的,里面存放的是 8字节无符号整数, 类似于 33454690,45672389,这样一类数值,我使用select 语句select conv(hex(bc.DataTimeStamp) ,16,10) as DataTimestamp 是可以正常显示的,现在我想把 33454690 这个数字 查找出来,加1,变为 33454691,再存放回去. 使用语句 inser

MySQL下varchar类型最大长度是多少

1.限制规则 字段的限制在字段定义的时候有以下规则:   a)  存储限制 varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535. b)  编码长度限制 字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766; 字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845. 若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning.

图片存储-hibernate mysql blob类型 图文存储怎么解决

问题描述 hibernate mysql blob类型 图文存储怎么解决 我想做一个文章存取得功能,即一片文章的内容有文字和图片,均存在实类Article中的content中,在Java是String类型,在mysql中是blob类型. jsp页面有一个form表(含有编辑器)是用来发表文章的,怎么从form表中,取得content的参数,然后转化成blob类型存进数据库,又怎么从数据库取出在转化成String在页面上显示呢???求大神指教怎么存取成功? 新手一枚,请大家多多包涵! 解决方案 是

MySQL表类型和存储引擎版本不一致解决方法

使用的是老版本的mysql客户端Navicate 8 ,mysql 服务端用的是mysql5.6的版本,在修改版本引擎的时候出现版本不对; mysql error 'TYPE=MyISAM' 解决办法: Replace TYPE=MyISAM with ENGINE=MyISAM The problem was "TYPE=MyISAM" which should be "ENGINE=MyISAM" as per MySQL version updates – a

MySQL数字类型int与tinyint、float与decimal如何选择

最近在准备给开发做一个mysql数据库开发规范方面培训,一步一步来,结合在生产环境发现的数据库方面的问题,从几个常用的数据类型说起. int.tinyint与bigint 它们都是(精确)整型数据类型,但是占用字节数和表达的范围不同.首先没有这个表就说不过去了: Type Storage Minimum Value Maximum Value (Bytes) (Signed/Unsigned) (Signed/Unsigned) TINYINT 1 -128 127 0 255 SMALLINT