PostgreSQL
有着丰富的本地数据类型可用。用户可以使用
CREATE TYPE
命令为
PostgreSQL
增加新的数据类型。
表 8-1
显示了所有内建的普通数据类型。大部分在
"别名"
列里列出的可选名字都是因历史原因 被
PostgreSQL
在内部使用的名字。另外,还有一些内部使用的或者废弃的类型也可以用,但没有在这里列出。
表 8-1. 数据类型
名字
|
别名
|
描述
|
bigint
|
int8
|
有符号的8字节整数
|
bigserial
|
serial8
|
自动增长的8字节整数
|
bit [ (
n
) ]
|
|
定长位串
|
bit varying [ (
n
) ]
|
varbit
|
变长位串
|
boolean
|
bool
|
逻辑布尔值(真/假)
|
box
|
|
平面上的普通方框
|
bytea
|
|
二进制数据(
"字节数组"
)
|
character [ (
n
) ]
|
char [ (
n
) ]
|
定长字符串
|
character varying [ (
n
) ]
|
varchar [ (
n
) ]
|
变长字符串
|
cidr
|
|
IPv4或IPv6网络地址
|
circle
|
|
平面上的圆
|
date
|
|
日历日期(年、月、日)
|
double precision
|
float8
|
双精度浮点数(8字节)
|
inet
|
|
IPv4或IPv6主机地址
|
integer
|
int
,
int4
|
有符号4字节整数
|
interval [
fields
] [ (
p
) ]
|
|
时间段
|
json
|
|
文本 JSON 数据
|
jsonb
|
|
二进制 JSON 数据,已分解
|
line
|
|
平面上的无限长的线
|
lseg
|
|
平面上的线段
|
macaddr
|
|
MAC(Media Access Control)地址
|
money
|
|
货币数量
|
numeric [ (
p
,
s
) ]
|
decimal [ (
p
,
s
) ]
|
可选择精度的精确数字
|
path
|
|
平面上的几何路径
|
pg_lsn
|
|
PostgreSQL
日志序列号
|
point
|
|
平面上的几何点
|
polygon
|
|
平面上的封闭几何路径
|
real
|
float4
|
单精度浮点数(4字节)
|
smallint
|
int2
|
有符号2字节整数
|
smallserial
|
serial2
|
自动增长的2字节整数
|
serial
|
serial4
|
自动增长的4字节整数
|
text
|
|
变长字符串
|
time [ (
p
) ] [ without time zone ]
|
|
一天中的时间(无时区)
|
time [ (
p
) ] with time zone
|
timetz
|
一天中的时间,包括时区
|
timestamp [ (
p
) ] [ without time zone ]
|
|
日期和时间(无时区)
|
timestamp [ (
p
) ] with time zone
|
timestamptz
|
日期和时间,包括时区
|
tsquery
|
|
文本搜索查询
|
tsvector
|
|
文本搜索文档
|
txid_snapshot
|
|
用户级别事务ID快照
|
uuid
|
|
通用唯一标识码
|
xml
|
|
XML数据
|
每种数据类型都有一个由其输入和输出函数决定的外部表现形式。许多内建的类型有明显的格式。不过,许多类型要么是
PostgreSQL
所特有的(例如几何路径),要么可能是有几种不同的格式(例如日期和时间类型)。 有些输入和输出函数是不可逆的,即输出函数的结果和原始输入比较时可能丢失精度。