第 8 章 数据类型
目录
- 8.14.1. JSON 输入和输出语法
- 8.14.2. 设计 JSON 文档
- 8.14.3.
jsonb
包含和存在 - 8.14.4.
jsonb
索引 - 8.14.5. 转换
- 8.14.6. jsonpath Type
- 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. 范围上的约束
PostgreSQL有着丰富的本地数据类型可用。用户可以使用CREATE TYPE命令为 PostgreSQL增加新的数据类型。
表 8.1显示了所有内建的普通数据类型。大部分在“别名”列里列出的可选名字都是因历史原因 被PostgreSQL在内部使用的名字。另外,还有一些内部使用的或者废弃的类型也可以用,但没有在这里列出。
表 8.1. 数据类型
名字 | 别名 | 描述 |
bigint |
int8 |
有符号的8字节整数 |
bigserial |
serial8 |
自动增长的8字节整数 |
bit [ ( |
定长位串 | |
bit varying [ ( |
varbit [ ( |
变长位串 |
boolean |
bool |
逻辑布尔值(真/假) |
box |
平面上的普通方框 | |
bytea |
二进制数据(“字节数组”) | |
character [ ( |
char [ ( |
定长字符串 |
character varying [ ( |
varchar [ ( |
变长字符串 |
cidr |
IPv4或IPv6网络地址 | |
circle |
平面上的圆 | |
date |
日历日期(年、月、日) | |
double precision |
float8 |
双精度浮点数(8字节) |
inet |
IPv4或IPv6主机地址 | |
integer |
int , int4 |
有符号4字节整数 |
interval [ |
时间段 | |
json |
文本 JSON 数据 | |
jsonb |
二进制 JSON 数据,已分解 | |
line |
平面上的无限长的线 | |
lseg |
平面上的线段 | |
macaddr |
MAC(Media Access Control)地址 | |
macaddr8 |
MAC(Media Access Control)地址(EUI-64格式) | |
money |
货币数量 | |
numeric [ ( |
decimal [ ( |
可选择精度的精确数字 |
path |
平面上的几何路径 | |
pg_lsn |
PostgreSQL日志序列号 | |
point |
平面上的几何点 | |
polygon |
平面上的封闭几何路径 | |
real |
float4 |
单精度浮点数(4字节) |
smallint |
int2 |
有符号2字节整数 |
smallserial |
serial2 |
自动增长的2字节整数 |
serial |
serial4 |
自动增长的4字节整数 |
text |
变长字符串 | |
time [ ( |
一天中的时间(无时区) | |
time [ ( |
timetz |
一天中的时间,包括时区 |
timestamp [ ( |
日期和时间(无时区) | |
timestamp [ ( |
timestamptz |
日期和时间,包括时区 |
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所特有的(例如几何路径),要么可能是有几种不同的格式(例如日期和时间类型)。 有些输入和输出函数是不可逆的,即输出函数的结果和原始输入比较时可能丢失精度。