Chapter 8. 数据类型

Table of Contents
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.5.6. 内部
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.9. 网络地址类型
8.9.1. inet
8.9.2. cidr
8.9.3. inetcidr对比
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. 数组
8.14.1. 数组类型的声明
8.14.2. 数组值输入
8.14.3. 访问数组
8.14.4. 修改数组
8.14.5. 在数组中检索
8.14.6. 数组的输入和输出语法
8.15. 复合类型
8.15.1. 声明复合类型
8.15.2. 复合类型值输入
8.15.3. 访问复合类型
8.15.4. 修改复合类型
8.15.5. 复合类型输入和输出语法
8.16. 对象标识符类型
8.17. 伪类型

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

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

Table 8-1. 数据类型

名字别名描述
bigintint8有符号8字节整数
bigserialserial8自增8字节整数
bit [ (n) ] 定长位串
bit varying [ (n) ]varbit变长位串
booleanbool逻辑布尔值(真/假)
box 平面中的矩形
bytea 二进制数据("字节数组"
character varying [ (n) ]varchar [ (n) ]变长字符串
character [ (n) ]char [ (n) ]定长字符串
cidr IPv4或IPv6网络地址
circle 平面中的圆
date 日历日期(年,月,日)
double precisionfloat8(8 bytes)双精度浮点数字(8字节)
inet IPv4或IPv6网络地址
integerint, int4有符号4字节整数
interval [ fields ] [ (p) ] 时间间隔
line 平面中的无限长直线
lseg 平面中的线段
macaddr MAC地址
money 货币金额
numeric [ (p, s) ]decimal [ (p, s) ]可选精度的准确数字
path 平面中的几何路径
point 平面中的点
polygon 平面中的封闭几何路径
realfloat4(4 bytes)单精度浮点数(4字节)
smallintint2有符号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声明的: bigintbitbit varyingbooleancharcharacter varyingcharactervarchardatedouble precisionintegerintervalnumericdecimalrealsmallinttime (有时区和无时区),timestamp(有时区和无时区),xml

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