跳至主要內容

KlustronDB大约 5 分钟

第 8 章 数据类型

目录

8.1. 数字类型 : 8.1.1. 整数类型

[8.1.2. 任意精度数字](datatype-numeric.md#DATATYPE-NUMERIC-DECIMAL)

[8.1.3. 浮点类型](datatype-numeric.md#DATATYPE-FLOAT)

[8.1.4. 序数类型](datatype-numeric.md#DATATYPE-SERIAL)

8.2. 货币类型

8.3. 字符类型

8.4. 二进制数据类型 : 8.4.1. bytea的十六进制格式

[8.4.2. `bytea`的转义格式](datatype-binary.md#id-1.5.7.12.10)

8.5. 日期/时间类型 : 8.5.1. 日期/时间输入

[8.5.2. 日期/时间输出](datatype-datetime.md#DATATYPE-DATETIME-OUTPUT)

[8.5.3. 时区](datatype-datetime.md#DATATYPE-TIMEZONES)

[8.5.4. 间隔输入](datatype-datetime.md#DATATYPE-INTERVAL-INPUT)

[8.5.5. 间隔输出](datatype-datetime.md#DATATYPE-INTERVAL-OUTPUT)

8.6. 布尔类型

8.7. 枚举类型 : 8.7.1. 枚举类型的声明

[8.7.2. 排序](datatype-enum.md#id-1.5.7.15.6)

[8.7.3. 类型安全性](datatype-enum.md#id-1.5.7.15.7)

[8.7.4. 实现细节](datatype-enum.md#id-1.5.7.15.8)

8.8. 几何类型 : 8.8.1. 点

[8.8.2. 线](datatype-geometric.md#DATATYPE-LINE)

[8.8.3. 线段](datatype-geometric.md#DATATYPE-LSEG)

[8.8.4. 方框](datatype-geometric.md#id-1.5.7.16.8)

[8.8.5. 路径](datatype-geometric.md#id-1.5.7.16.9)

[8.8.6. 多边形](datatype-geometric.md#DATATYPE-POLYGON)

[8.8.7. 圆](datatype-geometric.md#DATATYPE-CIRCLE)

8.9. 网络地址类型 : 8.9.1. inet

[8.9.2. `cidr`](datatype-net-types.md#DATATYPE-CIDR)

[8.9.3. `inet` vs. `cidr`](datatype-net-types.md#DATATYPE-INET-VS-CIDR)

[8.9.4. `macaddr`](datatype-net-types.md#DATATYPE-MACADDR)

[8.9.5. `macaddr8`](datatype-net-types.md#DATATYPE-MACADDR8)

8.10. 位串类型

8.11. 文本搜索类型 : 8.11.1. tsvector

[8.11.2. `tsquery`](datatype-textsearch.md#DATATYPE-TSQUERY)

8.12. UUID类型

8.13. XML类型 : 8.13.1. 创建XML值

[8.13.2. 编码处理](datatype-xml.md#id-1.5.7.21.6)

[8.13.3. 访问XML值](datatype-xml.md#id-1.5.7.21.7)

8.14. JSON 类型 : 8.14.1. JSON 输入和输出语法

[8.14.2. 有效地设计 JSON 文档](datatype-json.md#JSON-DOC-DESIGN)

[8.14.3. `jsonb` 包含和存在](datatype-json.md#JSON-CONTAINMENT)

[8.14.4. `jsonb` 索引](datatype-json.md#JSON-INDEXING)

[8.14.5. 转换](datatype-json.md#id-1.5.7.22.18)

8.15. 数组 : 8.15.1. 数组类型的定义

[8.15.2. 数组值输入](arrays.md#ARRAYS-INPUT)

[8.15.3. 访问数组](arrays.md#ARRAYS-ACCESSING)

[8.15.4. 修改数组](arrays.md#ARRAYS-MODIFYING)

[8.15.5. 在数组中搜索](arrays.md#ARRAYS-SEARCHING)

[8.15.6. 数组输入和输出语法](arrays.md#ARRAYS-IO)

8.16. 组合类型 : 8.16.1. 组合类型的声明

[8.16.2. 构造组合值](rowtypes.md#id-1.5.7.24.6)

[8.16.3. 访问组合类型](rowtypes.md#ROWTYPES-ACCESSING)

[8.16.4. 修改组合类型](rowtypes.md#id-1.5.7.24.8)

[8.16.5. 在查询中使用组合类型](rowtypes.md#ROWTYPES-USAGE)

[8.16.6. 组合类型输入和输出语法](rowtypes.md#ROWTYPES-IO-SYNTAX)

8.17. 范围类型 : 8.17.1. 内建范围类型

[8.17.2. 例子](rangetypes.md#RANGETYPES-EXAMPLES)

[8.17.3. 包含和排除边界](rangetypes.md#RANGETYPES-INCLUSIVITY)

[8.17.4. 无限(无界)范围](rangetypes.md#RANGETYPES-INFINITE)

[8.17.5. 范围输入/输出](rangetypes.md#RANGETYPES-IO)

[8.17.6. 构造范围](rangetypes.md#RANGETYPES-CONSTRUCT)

[8.17.7. 离散范围类型](rangetypes.md#RANGETYPES-DISCRETE)

[8.17.8. 定义新的范围类型](rangetypes.md#RANGETYPES-DEFINING)

[8.17.9. 索引](rangetypes.md#RANGETYPES-INDEXING)

[8.17.10. 范围上的约束](rangetypes.md#RANGETYPES-CONSTRAINT)

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) ]变长字符串
cidrIPv4或IPv6网络地址
circle平面上的圆
date日历日期(年、月、日)
double precisionfloat8双精度浮点数(8字节)
inetIPv4或IPv6主机地址
integerint, int4有符号4字节整数
interval [ fields ] [ (p) ]时间段
json文本 JSON 数据
jsonb二进制 JSON 数据,已分解
line平面上的无限长的线
lseg平面上的线段
macaddrMAC(Media Access Control)地址
macaddr8MAC(Media Access Control)地址(EUI-64格式)
money货币数量
numeric [ (p, s) ]decimal [ (p, s) ]可选择精度的精确数字
path平面上的几何路径
pg_lsnPostgreSQL日志序列号
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通用唯一标识码
xmlXML数据

兼容性

下列类型(或者及其拼写)是SQL指定的:bigintbitbit varyingbooleancharcharacter varyingcharactervarchardatedouble precisionintegerintervalnumericdecimalrealsmallinttime(有时区或无时区)、timestamp(有时区或无时区)、xml

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