↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4
开发快照。 PostgreSQL 20devel 尚未正式发布,内容仍可能变化。

第 8 章 数据类型

目录

8.1. 数字类型
8.1.1. 整数类型
8.1.2. 任意精度数值
8.1.3. 浮点类型
8.1.4. serial 类型
8.2. 货币类型
8.3. 字符类型
8.4. 二进制数据类型
8.4.1. bytea 的十六进制格式
8.4.2. bytea 的转义格式
8.5. 日期/时间类型
8.5.1. 日期/时间输入
8.5.2. 日期/时间输出
8.5.3. 时区
8.5.4. 间隔输入
8.5.5. 间隔输出
8.6. 布尔类型
8.7. 枚举类型
8.7.1. 枚举类型的声明
8.7.2. 排序
8.7.3. 类型安全性
8.7.4. 实现细节
8.8. 几何类型
8.8.1. 点
8.8.2. 直线
8.8.3. 线段
8.8.4. 方框
8.8.5. 路径
8.8.6. 多边形
8.8.7. 圆
8.9. 网络地址类型
8.9.1. inet
8.9.2. cidr
8.9.3. inet 与 cidr
8.9.4. macaddr
8.9.5. macaddr8
8.10. 位串类型
8.11. 文本检索类型
8.11.1. tsvector
8.11.2. tsquery
8.12. UUID 类型
8.13. XML 类型
8.13.1. 创建 XML 值
8.13.2. 编码处理
8.13.3. 访问 XML 值
8.14. JSON 类型
8.14.1. JSON 输入和输出语法
8.14.2. 设计 JSON 文档
8.14.3. jsonb 包含与存在
8.14.4. jsonb 索引
8.14.5. jsonb 下标
8.14.6. 转换
8.14.7. jsonpath 类型
8.15. 数组
8.15.1. 数组类型的声明
8.15.2. 数组值输入
8.15.3. 访问数组
8.15.4. 修改数组
8.15.5. 在数组中搜索
8.15.6. 数组输入和输出语法
8.16. 复合类型
8.16.1. 复合类型的声明
8.16.2. 构造复合值
8.16.3. 访问复合类型
8.16.4. 修改复合类型
8.16.5. 在查询中使用复合类型
8.16.6. 复合类型的输入和输出语法
8.17. 范围类型
8.17.1. 内置范围类型和多范围类型
8.17.2. 示例
8.17.3. 包含界限与排除界限
8.17.4. 无限(无界)范围
8.17.5. 范围输入/输出
8.17.6. 构造范围和多范围
8.17.7. 离散范围类型
8.17.8. 定义新的范围类型
8.17.9. 索引
8.17.10. 范围上的约束
8.18. 域类型
8.19. 对象标识符类型
8.20. pg_lsn 类型
8.21. 伪类型

PostgreSQL 提供了丰富的原生数据类型。用户可以使用 CREATE TYPE 命令向 PostgreSQL 添加新类型。

表 8.1 展示了所有内置的通用数据类型。“别名”列中列出的多数可选名称,都是 PostgreSQL 出于历史原因在内部使用的名称。此外,还有一些内部使用或已废弃的类型也可用,但未在此列出。

表 8.1. 数据类型

名字别名描述
bigintint8有符号的 8 字节整数
bigserialserial8自动递增的 8 字节整数
bit [ (n) ] 定长位串
bit varying [ (n) ]varbit [ (n) ]变长位串
booleanbool逻辑布尔值(真/假)
box 平面上的矩形框
bytea 二进制数据(“字节数组”)
character [ (n) ]char [ (n) ]定长字符串
character varying [ (n) ]varchar [ (n) ]变长字符串
cidr IPv4 或 IPv6 网络地址
circle 平面上的圆
date 日历日期(年、月、日)
double precisionfloat, float8双精度浮点数(8 字节)
inet IPv4 或 IPv6 主机地址
integerint, int4有符号 4 字节整数
interval [ fields ] [ (p) ] 时间段
json 文本 JSON 数据
jsonb 二进制 JSON 数据,已分解
line 平面上的无限直线
lseg 平面上的线段
macaddr MAC(媒体访问控制)地址
macaddr8 MAC(媒体访问控制)地址(EUI-64 格式)
money 货币额
numeric [ (p, s) ]decimal [ (p, s) ]可选择精度的精确数值
path 平面上的几何路径
pg_lsn PostgreSQL 日志序列号
pg_snapshot 用户级事务 ID 快照
point 平面上的几何点
polygon 平面上的封闭几何路径
realfloat4单精度浮点数(4 字节)
smallintint2有符号 2 字节整数
smallserialserial2自动递增的 2 字节整数
serialserial4自动递增的 4 字节整数
text 变长字符串
time [ (p) ] [ without time zone ] 一天中的时间(无时区)
time [ (p) ] with time zonetimetz一天中的时间,包括时区
timestamp [ (p) ] [ without time zone ] 日期和时间(无时区转换)
timestamp [ (p) ] with time zonetimestamptz日期和时间,包括时区转换
tsquery 文本检索查询
tsvector 文本检索文档
txid_snapshot 用户级事务 ID 快照(已废弃;参见 pg_snapshot)
uuid 通用唯一标识符
xml XML 数据

兼容性

下列类型(或它们的这些拼写形式)由 SQL 规定:bigint、bit、bit varying、boolean、char、character varying、character、varchar、date、double precision、integer、interval、json、numeric、decimal、real、smallint、time(有时区或无时区)、timestamp(有时区或无时区)、xml。

每种数据类型都有一种由其输入和输出函数决定的外部表示。许多内置类型的外部格式都很直观。不过,也有一些类型是 PostgreSQL 所特有的,例如几何路径;还有一些类型可能存在多种可能的格式,例如日期/时间类型。有些输入和输出函数并不可逆,也就是说,输出函数的结果与原始输入相比可能会丢失精度。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.