登录
第 8 章. 数据类型
目录
- 8.1. 数值类型
- 8.2. 货币类型
- 8.3. 字符类型
- 8.4. 二进制数据类型
- 8.5. 日期/时间类型
- 8.6. 布尔类型
- 8.7. 枚举类型
- 8.8. 几何类型
- 8.9. 网络地址类型
- 8.10. 位字符串类型
- 8.11. 文本搜索类型
- 8.12. 类型
- 8.13. 类型
- 8.14. 类型
- 8.15. 数组
- 8.16. 复合类型
- 8.17. 范围类型
- 8.18. 域类型
- 8.19. 对象标识符类型
- 8.20.
pg_lsn
类型 - 8.21. 伪类型
PostgreSQL为用户提供了丰富的本机数据类型。用户可以使用CREATE TYPE命令向PostgreSQL添加新类型。
表 8.1显示了所有内置通用数据类型。在“别名”列中列出的大多数备用名称都是PostgreSQL出于历史原因在内部使用的名称。此外,还提供了一些内部使用或已弃用的类型,但此处未列出。
表 8.1. 数据类型
名称 | 别名 | 描述 |
---|---|---|
bigint | int8 | 带符号的八字节整数 |
bigserial | serial8 | 自增八字节整数 |
bit [ ( | 固定长度位字符串 | |
bit varying [ ( | varbit [ ( | 可变长度位字符串 |
布尔值 | 布尔 | 逻辑布尔值(真/假) |
框 | 平面上的矩形框 | |
bytea | 二进制数据(“字节数组”) | |
字符 [ ( | char [ ( | 固定长度字符字符串 |
可变长度字符字符串 [ ( | varchar [ ( | 可变长度字符字符串 |
cidr | IPv4 或 IPv6 网络地址 | |
圆 | 平面上的圆 | |
日期 | 日历日期(年、月、日) | |
双精度 | float8 | 双精度浮点数(8 字节) |
inet | IPv4 或 IPv6 主机地址 | |
整数 | int , int4 | 带符号四字节整数 |
间隔 [ | 时间跨度 | |
json | 文本 JSON 数据 | |
jsonb | 二进制 JSON 数据,已分解 | |
线 | 平面上的无限线 | |
lseg | 平面上的线段 | |
macaddr | MAC(媒体访问控制)地址 | |
macaddr8 | MAC(媒体访问控制)地址(EUI-64 格式) | |
货币 | 货币金额 | |
数字 [ ( | 十进制 [ ( | 可选择精度的精确数字 |
路径 | 平面上的几何路径 | |
pg_lsn | PostgreSQL 日志序列号 | |
pg_snapshot | 用户级事务 ID 快照 | |
点 | 平面上的几何点 | |
多边形 | 平面上的闭合几何路径 | |
实数 | float4 | 单精度浮点数(4 字节) |
小整数 | int2 | 带符号两字节整数 |
小序列 | serial2 | 自动增量两字节整数 |
序列 | serial4 | 自动增量四字节整数 |
文本 | 可变长度字符字符串 | |
时间 [ ( | 一天中的时间(无时区) | |
时间 [ ( | timetz | 时间,包括时区 |
时间戳 [ ( | 日期和时间(无时区) | |
时间戳 [ ( | timestamptz | 日期和时间,包括时区 |
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
、numeric
、decimal
、real
、smallint
、time
(带或不带时区)、timestamp
(带或不带时区)、xml
。
每种数据类型都有一个由其输入和输出函数决定的外部表示形式。许多内置类型都有明显的外部格式。但是,一些类型要么是PostgreSQL独有的,例如几何路径,要么有多种可能的格式,例如日期和时间类型。一些输入和输出函数不可逆,即,与原始输入相比,输出函数的结果可能会丢失精度。