410
财经资讯
数值类型__数据类型_SQL语法参考_云数据库 OceanBase-阿里云
数值类型按精确度可以划分为两类:
- 精确数据类型
- 整数数据类型 TINYINT, SAMLLINT, MEDIUMINT, INTEGER, BIGINT
- 定点数据类型 DECIMAL, NUMERIC
- 近似数据类型 FLOAT, REAL, DOUBLE PRECISIONs
整数数据类型如下表:
类型 | 大小(字节) | 范围 | 最小值 | 最大值 |
(带符号的/无符号的) | (带符号的/无符号的) | (带符号的/无符号的) | ||
TINYINT | 1 | 27-1 | -128 | 127 |
28-1 | 0 | 255 | ||
SMALLINT | 2 | 215-1 | -32768 | 32767 |
216-1 | 0 | 65535 | ||
MEDIUMINT | 3 | 223-1 | -8388608 | 8388607 |
224-1 | 0 | 16777215 | ||
INT | 4 | 231-1 | -2147483648 | 2147483647 |
232-1 | 0 | 4294967295 | ||
BIGINT | 8 | 263-1 | -9223372036854775808 | 9223372036854775807 |
264-1 | 0 | 18446744073709551615 |
定点数据类型如下表:
类型 | 范围 | 用途 |
DECIMAL (M,D) NUMERIC (M,D) | DECIMAL、NUMERIC等价; 变长数据类型; 精度(M)最大位数38,标度(D)最大位数30,具体取值范围是受精度和标度的约束。(与MySQL不一致) | 定点数值 |
浮点数据类型如下:
类型 | 大小(字节) | 用途 |
FLOAT | 4 | 单精度浮点数值 |
FLOAT(p) | 如果0 <= p <= 24为4个字节, 如果25 <= p <= 53为8个字节 | 0到24的精度对应FLOAT列的4字节单精度。 25到53的精度对应DOUBLE列的8字节双精度。 |
DOUBLE [PRECISION] | 8 | 双精度浮点数值 |
说明:
在TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT类型中都可以指定显示宽度,格式为“数据类型(M)”,比如INT(20),这里的M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关。
UNSIGNED 修饰符规定字段只保存正值。
ZEROFILL修饰符规定0(不是空格)可以用于填补输出值。如果为一个数值列指定ZEROFILL,系统自动为该列添加UNSIGNED属性。
SERIAL是BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE的一个别名。在整数列定义中,SERIAL DEFAULT VALUE是NOT NULL AUTO_INCREMENT UNIQUE的一个别名。
BOOL(BOOLEAN)类型等价于TINYINT类型。
TINYINT
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
很小的整数。带符号的范围是-128到127。无符号的范围是0到255。
BOOL,BOOLEAN
是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。
SMALLINT
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。
MEDIUMINT
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。
INT
INT[(M] [UNSIGNED] [ZEROFILL]
普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。
将非法的int值插入表之前会自动改为0。
INTEGER
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
INT的同义词。
BIGINT
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。
使用带符号的BIGINT或DOUBLE值进行所有算法,因此除了位函数,不应使用大于9223372036854775807(63位)的无符号的大整数!如果这样做,结果中的最后几位可能出错,这是由于将BIGINT值转换为DOUBLE进行四舍五入时造成的错误。
可以在以下情况下处理BIGINT:
当使用整数在一个BIGINT列保存大的无符号的值时。
在MIN(col_name)或MAX(col_name)中,其中col_name指BIGINT列。
使用操作符(+,-,*等等)并且两个操作数均为整数时。
总是可以使用一个字符串在BIGINT列中保存严格整数值。在这种情况下,执行字符串-数字转换,其间不存在双精度表示。
当两个操作数均为整数值时,-、+和* 操作符使用BIGINT算法。这说明如果乘两个大整数(或来自返回整数的函数),当结果大于9223372036854775807时,会得到意想不到的结果。
FLOAT
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
小(单精度)浮点数。允许的值范围为-2128 ~ +2128,也即-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小些。
M是小数总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。
如果指定UNSIGNED,不允许负值。
使用浮点数可能会遇到意想不到的问题,因此所有计算用双精度完成。
DOUBLE
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
普通大小(双精度)浮点数。允许的值范围为:-21024 ~ +21024,也即是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308。这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小些。
M是小数总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。双精度浮点数精确到大约15位小数位。
如果指定UNSIGNED,不允许负值。
DOUBLE PRECISION
DOUBLE PRECISION [(M,D)] [UNSIGNED] [ZEROFILL], REAL[(M,D)] [UNSIGNED] [ZEROFILL]
为DOUBLE的同义词。
FLOAT(p)
FLOAT(p) [UNSIGNED] [ZEROFILL]
浮点数。p表示精度(以位数表示),只使用该值来确定是否结果列的数据类型为FLOAT或DOUBLE。如果p为从0到24,数据类型变为没有M或D值的FLOAT。如果p为从25到53,数据类型变为没有M或D值的DOUBLE。结果列范围与本节前面描述的单精度FLOAT或双精度DOUBLE数据类型相同。
DECIMAL(与MySQL不完全一致)
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
压缩的“严格”定点数。M是小数位数(精度)的总数,D是小数点(标度)后面的位数。小数点和‘-’(负数)符号不包括在M中。如果D是0,则值没有小数点或分数部分。DECIMAL整数最大位数(M)为38(MySQL 为65)。支持的十进制数的最大位数(D)是30。如果D被省略, 默认是0。如果M被省略, 默认是10。
如果指定UNSIGNED,不允许负值。
所有DECIMAL列的基本计算(+,-,*,/)用38(MySQL为65)位精度完成。
DEC[(M[,D])] [UNSIGNED] [ZEROFILL], NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]是DECIMAL的同义词。FIXED同义词适用于与其它服务器的兼容性。
NUMERIC
NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]是DECIMAL的同义词。
最后更新:2016-11-23 16:03:54
上一篇:
分区管理__分区_SQL语法参考_云数据库 OceanBase-阿里云
下一篇:
字符串类型__数据类型_SQL语法参考_云数据库 OceanBase-阿里云
ECS图形化界面__使用阿里云图形界面_使用手册_Eclipse 插件-阿里云
申请物理专线接入__高速通道相关接口_API 参考_云服务器 ECS-阿里云
创建RAM用户__快速入门_访问控制-阿里云
DescribeLoadBalancerHTTPSListenerAttribute__Listener相关API_API 参考_负载均衡-阿里云
WAF源站负载均衡__常见接入问题_Web 应用防火墙-阿里云
标签概览__服务编排文档_用户指南_容器服务-阿里云
wordpress日志__常见日志格式_用户指南_日志服务-阿里云
申请批量生成设备__接口列表_服务器端API_阿里云物联网套件-阿里云
查询直播流的帧率和码率__直播流操作接口_API 手册_CDN-阿里云
API接口__SDK手册_HTTPDNS-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云