GBase 8c
其他
文章
任意精度数据类型
GBase社区管理员发表于2024-02-06 09:45:2924次浏览0个评论
GBase 8c数据库中任意精度型数据类型如下表所示:
表 任意精度型
名称 | 描述 | 存储空间 | 范围 |
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位。 |
示例
--创建表。
postgres=#CREATE TABLE decimal_type_t1 (DT_COL1 DECIMAL(10,4));
CREATE TABLE
--插入数据。
postgres=# INSERT INTO decimal_type_t1 VALUES(123456.122331);
INSERT 0 1
--查询表中的数据。
postgres=#SELECT * FROM decimal_type_t1;
dt_col1
-------------
123456.1223
(1 row)
--删除表。
postgres=#DROP TABLE decimal_type_t1;
DROP TABLE
--创建表。
postgres=#CREATE TABLE numeric_type_t1 (NT_COL1 NUMERIC(10,4));
CREATE TABLE
--插入数据。
postgres=#INSERT INTO numeric_type_t1 VALUES(123456.12354);
INSERT 0 1
--查询表中的数据。
postgres=#SELECT * FROM numeric_type_t1;
nt_col1
-------------
123456.1235
(1 row)
--删除表。
postgres=# DROP TABLE numeric_type_t1;
DROP TABLE
与整数类型相比,任意精度类型需要更大的存储空间,其存储效率、运算效率以及压缩比效果都要差一些。在进行数值类型定义时,优先选择整数类型。当且仅当数值超出整数可表示最大范围时,再选用任意精度类型。
使用Numeric/Decimal进行列定义时,建议指定该列的精度p以及标度s。
评论已关闭
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526