numeric
可指定精度的精确数值
当前查看 PostgreSQL 18。
中文定义与说明
可指定精度的精确数值
同版本中文手册定义
numeric | 可变 | 用户指定精度,精确 | 最高小数点前 131072 位,以及小数点后 16383 位 |
PG10–20 核心源码清单。类型转换与操作符类列出源码显式声明的关系;缺少记录不能排除通过其他机制进行转换或使用索引。
定义
SQL 名称与别名: decimal [ ( p , s ) ]
可指定精度的精确数值
numeric [ ( p , s ) ]
- 目录名称
- pg_catalog.numeric
- 类型 OID
- 1700
- 类型种类
- 基础类型
- 声明长度
- 变长(varlena)
- 存储策略
- main
- 输入函数
- numeric_in
- 输出函数
- numeric_out
- 手册中的声明
- decimal
- 存储大小
- 可变
- 手册说明
- 用户指定精度,精确
- 范围
- 小数点前最多 131072 位,小数点后最多 16383 位
- 手册中的声明
- numeric
系统目录属性
此构建的源码初始化值。字段含义参见 pg_type 。包含头文件默认值;依赖构建的常量保留符号形式,不作为服务器运行时实测。
oid1700descr'numeric(precision, scale)' arbitrary precision numbertypacl_null_typlen-1typelem0typnamenumerictypsendnumeric_sendtyptypebtypalignityparray0typbyvalftypdelim','typinputnumeric_intypmodinnumerictypmodintypndims0typownerPOSTGREStyprelid0typmodoutnumerictypmodouttypoutputnumeric_outtyptypmod-1typanalyze-typdefault_null_typnotnullftypreceivenumeric_recvtypstoragemtypbasetype0typcategoryNtypcollation0typisdefinedttypnamespacepg_catalogtypsubscript-typdefaultbin_null_array_type_oid1231typispreferredfarray_type_name_numeric
类型转换 14
与此类型相关的显式 pg_cast 记录。PostgreSQL 还支持 pg_cast 之外的类型转换,缺少记录不能证明转换不可能。
| 源类型 | 目标类型 | 转换上下文 | 转换方式 | 函数 |
|---|---|---|---|---|
int8 | numeric | 隐式 | 函数 | numeric(int8) |
int2 | numeric | 隐式 | 函数 | numeric(int2) |
int4 | numeric | 隐式 | 函数 | numeric(int4) |
float4 | numeric | 赋值 | 函数 | numeric(float4) |
float8 | numeric | 赋值 | 函数 | numeric(float8) |
numeric | int8 | 赋值 | 函数 | int8(numeric) |
numeric | int2 | 赋值 | 函数 | int2(numeric) |
numeric | int4 | 赋值 | 函数 | int4(numeric) |
numeric | float4 | 隐式 | 函数 | float4(numeric) |
numeric | float8 | 隐式 | 函数 | float8(numeric) |
money | numeric | 赋值 | 函数 | numeric(money) |
numeric | money | 赋值 | 函数 | money(numeric) |
numeric | numeric | 隐式 | 函数 | numeric(numeric,int4) |
jsonb | numeric | 显式 | 函数 | numeric(jsonb) |
运算符重载 18
每种操作数签名均为独立重载。实现函数和返回类型来自同一源码构建。
| 运算符 | 左操作数 | 右操作数 | 返回类型 | 含义 | 实现函数 |
|---|---|---|---|---|---|
- | 无(一元) | numeric | numeric | 取负。 | numeric_uminus |
= | numeric | numeric | bool | 等于。 | numeric_eq |
<> | numeric | numeric | bool | 不等于。 | numeric_ne |
< | numeric | numeric | bool | 小于。 | numeric_lt |
<= | numeric | numeric | bool | 小于或等于。 | numeric_le |
> | numeric | numeric | bool | 大于。 | numeric_gt |
>= | numeric | numeric | bool | 大于或等于。 | numeric_ge |
+ | numeric | numeric | numeric | 相加。 | numeric_add |
- | numeric | numeric | numeric | 相减。 | numeric_sub |
* | numeric | numeric | numeric | 相乘。 | numeric_mul |
/ | numeric | numeric | numeric | 相除。 | numeric_div |
% | numeric | numeric | numeric | 取余。 | numeric_mod |
^ | numeric | numeric | numeric | 乘方。 | numeric_power |
@ | 无(一元) | numeric | numeric | 绝对值。 | numeric_abs |
+ | 无(一元) | numeric | numeric | 一元正号。 | numeric_uplus |
+ | pg_lsn | numeric | pg_lsn | 相加。 | pg_lsn_pli |
+ | numeric | pg_lsn | pg_lsn | 相加。 | numeric_pl_pg_lsn |
- | pg_lsn | numeric | pg_lsn | 相减。 | pg_lsn_mii |
操作符类 5
声明输入类型与此类型相符的操作符类。多态操作符类、类型转换和表达式索引还可能提供其他索引路径;不能仅凭此表判断是否支持索引。
| 操作符类 | 索引方法 | 输入类型 | 操作符族 | 默认 | 存储类型 |
|---|---|---|---|---|---|
numeric_ops | btree | numeric | btree/numeric_ops | 是 | 与输入类型相同 |
numeric_ops | hash | numeric | hash/numeric_ops | 是 | 与输入类型相同 |
numeric_minmax_ops | brin | numeric | brin/numeric_minmax_ops | 是 | numeric |
numeric_minmax_multi_ops | brin | numeric | brin/numeric_minmax_multi_ops | 否 | numeric |
numeric_bloom_ops | brin | numeric | brin/numeric_bloom_ops | 否 | numeric |
版本比较
PostgreSQL 17 → 18。属性比较不包含构建标识和说明正文;原始目录字段与源描述保留原文。
这两个样本的系统目录和结构化属性没有变化。
文档与源码
- 构建
- 18.6 · https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
相关条目
全部数据类型 · 下载此版本 JSON · 最早收录的样本不代表该类型的实际引入版本。