Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

章 8. 数据类型

目录
8.1. 数值类型
8.1.1. 整数类型
8.1.2. 任意精度数值
8.1.3. 浮点数类型
8.1.4. 序列号类型
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.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.15. Arrays
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.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. pg_lsn 类型
8.20. 伪类型

PostgreSQL有着丰富的内置数据类型可用。 用户还可以使用CREATE TYPE命令增加新的数据类型。

表 8-1显示了所有内置的泛用数据类型。 在"别名"列里列出的大多数可选名字都是因历史原因在PostgreSQL 内部使用。另外,还有一些内部使用的或者废弃的类型也是可用的, 但没有在这里列出。

表 8-1. 数据类型

名字别名描述
bigintint8有符号8字节整数
bigserialserial8自增8字节整数
bit [ (n) ] 定长位串
bit varying [ (n) ]varbit可变长位串
booleanbool逻辑布尔值(真/假)
box 平面上的矩形
bytea 二进制数据("字节数组")
character [ (n) ]char [ (n) ]定长字符串
character varying [ (n) ]varchar [ (n) ]可变长字符串
cidr IPv4 或 IPv6 网络地址
circle 平面上的圆
date 日历日期(年, 月, 日)
double precisionfloat8双精度浮点数(8字节)
inet IPv4 或 IPv6 主机地址
integerint, int4有符号 4 字节整数
interval [ fields ] [ (p) ] 时间间隔
json 文本的JSON数据
jsonb 二进制JSON数据,已分解的
line 平面上的无限长直线
lseg 平面上的线段
macaddr MAC (Media Access Control)地址
money 货币金额
numeric [ (p, s) ]decimal [ (p, s) ]可选精度的准确数值数据类型
path 平面上的几何路径
pg_lsn PostgreSQL日志序列号
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快照
uuid 通用唯一标识符
xml XML 数据

兼容性: 下列类型(或那样的拼写)是SQL规范声明的: bigint, bit, bit varying, boolean, char, character varying, character, varchar, date, double precision, integer, interval, numeric, decimal, real, smallint, time (有时区或无时区), timestamp (有时区或无时区), xml

每种数据类型都有一个由其输入和输出函数决定的外部表现形式。 许多内置的类型有明显的外部格式。不过,一些数据类型要么是PostgreSQL 所特有的,比如几何路径,要么是有若干种不同的格式,比如日期和时刻类型。 有些输入和输出函数是不可逆的,也就是说, 输出函数的输出结果和原始的输入比较的时候可能丢失精度。