0
点赞
收藏
分享

微信扫一扫

GBase 8a数据库支持的数字类型,最高精度

其生 2022-01-22 阅读 70

GBase 8a MPP Cluster支持数据类型包括严格的数值数据类型(TINYINT,SMALLINT,INT,BIGINT,DECIMAL),以及近似的数值数据类型(FLOAT,DOUBLE)。

为了更有效地使用存储空间,请用户尽量使用最精确的类型。例如,如果一个整数列被用于在1~127之间的值,TINYINT是最好的类型。

为了存储更大范围的数值,用户可以选择BIGINT或DECIMAL类型。

作为SQL92标准的扩展,GBase 8a MPP Cluster也支持整数类型TINYINT,SMALLINT和BIGINT。

GBase 8a MPP Cluster支持的数值类型,如下表所示:

表5‑5保留字

类型名称 最小值 最大值 占用字节数
TINYINT -127 127 1
SMALLINT -32767 32767 2
INT(INTEGER) -2147483647 2147483647 4
BIGINT -9223372036854775806 9223372036854775806 8
FLOAT -3.40E+38 3.40E+38 4
DOUBLE -1.7976931348623157E+308 1.7976931348623157E+308 8
DECIMAL[(M[, D])] -(1E+M -1)/(1E+D) (1E+M -1)/(1E+D) 动态计算
注意:
各个数字的最小值和最大值,与传统的其它数据库并不一样,也和普通的数字极限值也不同,最小值都增加了1。 也就是在GBase里, 最小值和最大值,除去符号不同外,其它是相同的。

gbase8a 数据库各类数据类型支持的最长字段
varchar
UTF8字符集,最长10922字符
UTF8MB4字符集,最长8191字符

decimal
最大长度 65
最大精度 30

LONGBLOB、LONGTEXT
最大长度64M

测试样例
gbase> create table t_varchar(c1 varchar(10922),d1 decimal(100,100))charset=‘utf8’;
ERROR 1425 (42000): Too big scale 100 specified for column ‘d1’. Maximum is 30.
gbase> create table t_varchar(c1 varchar(10922),d1 decimal(100,30))charset=‘utf8’;
ERROR 1426 (42000): Too big precision 100 specified for column ‘d1’. Maximum is 65.
gbase> create table t_varchar(c1 varchar(10923),d1 decimal(65,30))charset=‘utf8’;
ERROR 1702 (HY000): gcluster table error: Column length too big for column ‘c1’ (max = 10922); use BLOB or TEXT instead.
gbase> create table t_varchar(c1 varchar(10922),d1 decimal(65,30))charset=‘utf8’;
Query OK, 0 rows affected (Elapsed: 00:00:00.12)

gbase> create table t_varchar2(c1 varchar(10922),d1 decimal(65,30))charset=‘utf8mb4’;
ERROR 1702 (HY000): gcluster table error: Column length too big for column ‘c1’ (max = 8191); use BLOB or TEXT instead.
gbase>
gbase> create table t_varchar2(c1 varchar(8191),d1 decimal(65,30))charset=‘utf8mb4’;
Query OK, 0 rows affected (Elapsed: 00:00:00.08)

gbase>

举报

相关推荐

0 条评论