GBase数据库的官方学习笔记之——“数据类型”(详细介绍了GBase 8a MPP Cluster支持的数据类型)
前言:第一次接触GBase数据库是在实际工作中,当时很蒙圈,因为熟悉Oracle,Mysql等数据库,作为大数据软件开发的静静,也是比较熟悉HBase,所以上网搜关于具体学习GBase的资料实在很少,或者总结归纳不是很全面,所以,为了自己之后的工作使用起来方便,便总结归纳成了学习笔记,也希望可以帮助到大家,毕竟作为小白的女程序员,只能靠自己的努力啦。欢迎大家给出意见,错误的地方也希望大家可以帮助纠正。
一、数据类型
GBase 8a MPP Cluster支持的数据类型,分为四大类型:
数值类型(8个)字符类型(3个)日期和时间类型(4个)二进制数据类型(2个)
1.数值类型
GBase 8a 允许在关键字 FLOAT 后面的括号内选择用位指定精度,即FLOAT(X)。0 到 23 的精度对应 FLOAT 列的 4 字节单精度,24 到 53 的精度对应 DOUBLE 列的 8 字节双精度。当 24<=X<=53 时,FLOAT(X)与 DOUBLE(X)等价。同时 GBase 8a 允许使用非标准语法 FLOAT(M,D)(M 是整数位数和小数位数的总位数,D 是小数的个数),GBase 8a 保存值时进行四舍五入。GBase 8a 允许在关键字 DOUBLE 后面的括号内选择用位指定精度,即DOUBLE (X)。0 到 23 的精度对应 FLOAT 列的 4 字节单精度,24 到 53 的精度对应 DOUBLE 列的 8 字节双精度。当 24<=X<=53 时,FLOAT(X)与 DOUBLE(X)等价。同时 GBase 8a 允许使用非标准语法 DOUBLE(M,D)(M 是整数位数和小数位数的总位数,D 是小数的个数),GBase 8a 保存值时进行四舍五入。
在不需要过高的数字精度的场景中,DECIMAL 中的 M 可以定义为 M≤18,这样可以获得更好的查询性能。
DECIMAL 用来存储那些严格要求数字精度的数据,例如货币数据,在这
种情况下需要指定精度:SALARY DECIMAL(5,2) 在 DECIMAL(5,2)中,5 表示总位数(整数位和小数位的位数总和),2 是小数位数。可以存储在 salary 列的最小值是-999.99,最大值是 999.99。
DECIMAL 值的最大范围受限于给定的精度和小数范围。超过小数范围时,会按四舍五入的原则截断为设定小数位数。
在定义 DECIMAL 数据列时,如果 M 和 D 同时省略,则 M 取值为 10,D 取
值为 0,即 DECIMAL(10,0),如果只指定 M 值,省略 D 值,那么插入一个非整
数值的数字时,将按照四舍五入的原则截取到整数位。
会继续更新,谢谢关注~