GBase 8c
其他
文章

GBase 8c 数据类型——任意精度型

发表于2023-12-07 17:33:0816次浏览0个评论

任意精度型
 

名称

描述

存储空间

范围

NUMERIC[ (p[,s])],

DECIMAL[( p[,s])]

精度p取值范围为[1,1000],标度s取值范围为[0,p]。说明

p为总位数,s为小

数位数。

用户声明精度。每四位(十进制位)占用两个字节,然后在整个数据上加上八个字节的额外开销。

未指定精度的情况下,小数点前最大131,072位,小数点后最大16,383位。

NUMBER[( p[,s])]

NUMERIC类型的别名。

用户声明精度。每四位(十进制位)占用两个字节,然后在整个数据上加上八个字节的额外开销。

未指定精度的情况下,小数点前最大131,072位,小数点后最大16,383位。

示例

--创建表。

gbase=# CREATE TABLE decimal_type_t1 (DT_COL1 DECIMAL(10,4));

CREATE TABLE

--插入数据。

gbase=# INSERT INTO decimal_type_t1 VALUES(123456.122331);

INSERT 0 1

--查询表中的数据。

gbase=# SELECT * FROM decimal_type_t1;

dt_col1

-------------

 123456.1223

(1 row) 

--删除表。

gbase=# DROP TABLE decimal_type_t1;

DROP TABLE

--创建表。

gbase=# CREATE TABLE numeric_type_t1 (NT_COL1 NUMERIC(10,4));

CREATE TABLE

--插入数据。

gbase=# INSERT INTO numeric_type_t1 VALUES(123456.12354);

INSERT 0 1

--查询表中的数据。

gbase=# SELECT * FROM numeric_type_t1;

nt_col1

-------------

 123456.1235

(1 row) 

--删除表。

gbase=# DROP TABLE numeric_type_t1;

DROP TABLE

l 与整数类型相比,任意精度类型需要更大的存储空间,其存储效率、运算效率以及压缩比效果都要差一些。在进行数值类型定义时,优先选择整数类型。当且仅当数值超出整数可表示最大范围时,再选用任意精度类型。

l 使用Numeric/Decimal进行列定义时,建议指定该列的精度p以及标度s。

评论

登录后才可以发表评论