目录
PostgreSQL 向用户提供了丰富的本机数据类型。用户可以使用 CREATE TYPE 命令将新类型添加到 PostgreSQL 中。
表 8.1显示了所有内建通用数据类型。大多数在“别名”列中列出的备用名称是出于历史原因而由PostgreSQL内部使用的名称。此外,某些内部使用或已被弃用的类型可用,但此处未列出。
表 8.1. 数据类型
名称 | 别名 | 说明 |
---|---|---|
bigint |
int8 |
有符号八字节整数 |
bigserial |
serial8 |
自增八字节整数 |
bit [ ( |
固定长度位字符串 | |
bit varying [ ( |
varbit [ ( |
可变长度位字符串 |
boolean |
bool |
逻辑布尔值(true/false) |
box |
平面上的矩形框 | |
bytea |
二进制数据(“字节数组”) | |
character [ ( |
char [ ( |
固定长度字符字符串 |
character varying [ ( |
varchar [ ( |
可变长度字符字符串 |
cidr |
IPv4 或 IPv6 网络地址 | |
circle |
平面上的圆 | |
date |
日历日期(年、月、日) | |
double precision |
float8 |
双精度浮点数(8 个字节) |
inet |
IPv4 或 IPv6 主机地址 | |
integer |
int 、int4 |
有符号四字节整数 |
interval [ |
时间跨度 | |
json |
文本 JSON 数据 | |
jsonb |
二进制 JSON 数据(已分解) | |
line |
平面上的无限直线 | |
lseg |
平面上的线段 | |
macaddr |
MAC(介质访问控制)地址 | |
macaddr8 |
MAC(介质访问控制)地址(EUI-64 格式) | |
money |
货币金额 | |
numeric [ ( |
decimal [ ( |
可选精度精确数字 |
path |
平面上的几何路径 | |
pg_lsn |
PostgreSQL日志序列号 | |
pg_snapshot |
用户级事务 ID 快照 | |
point |
平面上的几何点 | |
polygon |
平面上的封闭几何路径 | |
real |
浮点数 |
单精度浮点数字 (4 字节) |
小型整型 |
整型 2 |
有符号双字节整数 |
小型序列号 |
序列号 2 |
自动增加双字节整数 |
序列号 |
序列号 4 |
自动增加四字节整数 |
文本 |
可变长度字符字符串 | |
时间 [ ( |
一天中的某一时间 (无时区) | |
时间 [ ( |
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 独有的,例如几何路径,要么有多种可能的格式,例如日期和时间类型。有些输入和输出函数不可逆,即与原始输入相比,输出函数的结果可能会丢失精度。