PolarDB PostgreSQL版(兼容Oracle)支持丰富的数据类型,以满足不同的业务和数据建模需求。为帮助您在设计数据库时作出最佳选择,本文对功能相同或相似的类型名称(别名)进行了归纳,并详细列出了各类数据类型的核心特性与适用场景。
常见数据类型
下表为您详细列出了PolarDB PostgreSQL版(兼容Oracle)支持的数据类型。
类型名称(Type Name):数据库中定义和使用的具体类型标识符。
展示类型(Display Type):用于统一表示和显示的标准化类型名称。
类型描述(Description):详细说明该数据类型的特性、用途和适用场景。
在数据库的底层实现中,不同类型名称可能共享相同的存储结构和处理逻辑。为避免混淆并提供更清晰的理解,PolarDB引入了展示类型(Display Type)这一概念,对具有相同底层实现的数据类型进行统一归类和展示。这一设计不仅有助于简化类型管理,还能让您更直观地了解各种数据类型之间的关系和差异,从而在实际开发过程中做出更为恰当的类型选择。
类型名称(Type Name) | 展示类型(Display Type) | 类型描述(Description) |
|
| 逻辑布尔值(真/假) |
|
| 自动增长的2字节整数 |
|
| 自动增长的4字节整数 |
|
| 自动增长的8字节整数 |
|
| 有符号2字节整数 |
|
| 有符号4字节整数 |
|
| 有符号的8字节整数 |
|
| 单精度浮点数(4字节) |
|
| 双精度浮点数(8字节) |
|
| 可自定义精度的精确数值 |
|
| 二进制数据(字节数组) |
|
| 定长位串 |
|
| 变长位串 |
|
| 变长字符串 |
|
| 定长字符串 |
|
| 变长字符串 |
|
| 日期类型(年、月、日、时、分、秒) |
|
| 一天中的时间(无时区) |
|
| 一天中的时间,包括时区 |
|
| 日期和时间(无时区) |
|
| 日期和时间,包括时区 |
|
| 时间间隔 |
|
| 文本JSON数据 |
|
| 二进制JSON数据(已分解的文本JSON数据) |
|
| 用于查询JSON数据的路径表达式 |
|
| 兼容Oracle语法的JSON基类 |
|
| 兼容Oracle语法的JSON数组 |
|
| 兼容Oracle语法的JSON对象 |
|
|
|
|
|
|
|
| 平面上的矩形 |
|
| IPv4或IPv6网络地址 |
|
| 平面上的圆 |
|
| 行标识符类型 |
|
| 通用行标识符类型 |
|
| XML数据格式 |
|
| 兼容Oracle语法格式的XML数据 |
|
|
|
|
| IPv4或IPv6主机地址 |
|
| 平面上的无限长线 |
|
| 平面上的线段 |
|
| MAC(Media Access Control)地址 |
|
| EUI-64 格式的MAC(Media Access Control)地址 |
|
| 货币金额 |
|
| 平面上的几何路径 |
|
| PostgreSQL日志序列号 |
|
| 事务ID快照 |
|
| 事务ID快照 说明 当前类型已废弃,请使用 |
|
| 平面上的几何点 |
|
| 平面上的封闭几何路径 |
|
| 全文搜索查询类型 |
|
| 全文搜索文档类型 |
|
| 通用唯一标识符 |
选型参考
json
与jsonb
:json
类型按文本原样存储,插入速度快。而jsonb
类型是优化的二进制格式存储,支持索引,查询性能远优于json
。对于需要频繁查询和操作JSON内部元素的场景,强烈建议使用jsonb
。数值精度:使用
numeric
或decimal
类型时,建议根据业务需求明确指定精度(precision)和标度(scale),以确保数据存储的准确性和空间效率。例如:numeric(10, 2)
。字符串类型:
character(n)
或char(n)
是定长字符串,长度不足时会用空格补全,而character varying(n)
或varchar(n)
是变长字符串,仅存储实际内容。在大多数场景下,推荐使用varchar
或text
。