数值类型可以划分为三类:
成都创新互联公司主营德令哈网站建设的网络公司,主营网站建设方案,成都app开发,德令哈h5小程序定制开发搭建,德令哈网站营销推广欢迎德令哈等地区企业咨询
BOOL/BOOLEAN
、TINYINT
、SMALLINT
、MEDIUMINT
、INT/INTEGER
、BIGINT
。:DECIMAL/NUMERIC
。FLOAT
、DOUBLE
。BIT
。所有数据类型都可以同时使用UNSIGNED
关键字声明为无符号类型,这会导致值域发生变化。
数值类型在定义时可以指定 precision 和 scale,不同类型中 precision 和 scale 的含义可能有所不同,详情请见各类型详细说明。
整数类型为定长、精确数值类型,值域取决于类型长度,以及是否为无符号,precision 只表示最小显示宽度,详见“ZEROFILL 属性”。以下为相关信息:
类型 |
长度(字节) |
值域(有符号) |
值域(无符号) |
---|---|---|---|
|
1 |
[-27, 27 - 1] |
[0, 28 - 1] |
|
2 |
[-215, 215 - 1] |
[0, 216 - 1] |
|
3 |
[-223, 223 - 1] |
[0, 224 - 1] |
|
4 |
[-231, 231 - 1] |
[0, 232 - 1] |
|
8 |
[-263, 263 - 1] |
[0, 264 - 1] |
BOOL
等价于BOOLEAN
,这两个类型又等价于TINYINT(1)
。
INT
等价于INTEGER
。
定点类型为变长、精确数值类型,值域和精度取决于 precision 和 scale,以及是否为无符号。precision 和 scale 分别表示十进制下的总最大有效位数、小数部分最大有效位数,整数部分最大有效位数等于 precision - scale,其中 precision 和 scale 的最大值分别为 65、30,默认值分别为 10、0。例如:
DECIMAL(5, 2)
,整数部分和小数部分最大有效位数分别为 3、2,所以值域为 [-999.99, 999.99]。
如果同时定义为UNSIGNED
,则值域为 [0, 999.99]。
DECIMAL
等价于NUMERIC
。
浮点类型为定长、非精确数值类型,值域和精度取决于类型长度、precision 和 scale,以及是否为无符号。precision 和 scale 分别表示十进制下的总最大有效位数、小数部分最大有效位数,整数部分最大有效位数等于 precision - scale,其中 precision 和 scale 的最大值分别为 53、30。
浮点类型的精度只是 IEEE 标准中规定的理论值,实际情况可能因硬件或操作系统限制略有不同。
以下为不指定 precision 和 scale 时的默认信息:
类型 |
长度(字节) |
值域(有符号) |
值域(无符号) |
精度 |
---|---|---|---|---|
|
4 |
[-2128, 2128] |
[0, 2128] |
7 位 |
|
8 |
[-21024, 21024] |
[0, 21024] |
15 位 |
如果指定 precision 和 scale,则值域确定方法与定点类型相同。
BIT 数据类型用于存储 bit values。一个 BIT(M) 能够存储 M-bit 的值,M 的范围是 1~64。
bit value 通过 b'value' 的形式指定,value 是用 0 和 1 来指定的,例如, b'111' 表示 7,b'10000000' 表示 128。
当向 BIT(M) 列插入值时,如果插入值的长度小于 M,则会在左侧填充 0。例如:将 b'101' 插入到 BIT(6) 时,相当于插入了 b'000101'。
数值类型在定义时可以通过 ZEROFILL 关键字指定最小显示宽度,同时将该类型隐式定义为 UNSIGNED。在数据实际显示宽度不足最小显示宽度时,通过先在小数部分补零到 scale 上限、再在整数部分补零到 precision 上限的方式,将显示宽度补足到最小显示宽度。例如:
INT(5) ZEROFILL
:当数据值为123
时,将显示为00123
。
DECIMAL(10, 5) ZEROFILL
:当数据值为123.456
时,将显示为00123.45600
。
网页名称:创新互联OceanBase教程:OceanBase数值类型
网页链接:http://www.mswzjz.com/qtweb/news16/202816.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联