PostgreSQL有着丰富的内置数据类型可用。 用户还可以使用CREATE TYPE命令增加新的数据类型。
Table 8-1显示了所有内置的普通数据类型。 在"别名"列里列出的大多数可选名字都是因历史原因 PostgreSQL在内部使用的名字。 另外,还有一些内部使用的或者废弃的类型也可以使用,但没有在这里列出。
Table 8-1. 数据类型
名字 | 别名 | 描述 |
---|---|---|
bigint | int8 | 有符号8字节整数 |
bigserial | serial8 | 自增8字节整数 |
bit [ (n) ] | 定长位串 | |
bit varying [ (n) ] | varbit | 变长位串 |
boolean | bool | 逻辑布尔值(真/假) |
box | 平面中的矩形 | |
bytea | 二进制数据("字节数组") | |
character varying [ (n) ] | varchar [ (n) ] | 变长字符串 |
character [ (n) ] | char [ (n) ] | 定长字符串 |
cidr | IPv4或IPv6网络地址 | |
circle | 平面中的圆 | |
date | 日历日期(年,月,日) | |
double precision | float8 | (8 bytes)双精度浮点数字(8字节) |
inet | IPv4或IPv6网络地址 | |
integer | int, int4 | 有符号4字节整数 |
interval [ fields ] [ (p) ] | 时间间隔 | |
line | 平面中的无限长直线 | |
lseg | 平面中的线段 | |
macaddr | MAC地址 | |
money | 货币金额 | |
numeric [ (p, s) ] | decimal [ (p, s) ] | 可选精度的准确数字 |
path | 平面中的几何路径 | |
point | 平面中的点 | |
polygon | 平面中的封闭几何路径 | |
real | float4 | (4 bytes)单精度浮点数(4字节) |
smallint | int2 | 有符号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数据 |
兼容性: 下列类型(或者那样拼写的)是SQL声明的: bigint,bit,bit varying,boolean,char,character varying, character,varchar,date,double precision,integer, interval,numeric,decimal,real,smallint,time (有时区和无时区),timestamp(有时区和无时区),xml。
每种数据类型都有一个由其输入和输出函数决定的外部表现形式。 许多内建的类型有明显的格式。不过,许多类型要么是PostgreSQL所特有的, 比如几何路径,要么是有几种可能的格式,比如日期和时间类型。 有些输入和输出函数是不可逆的。 也就是说,输出函数的输出结果和原始的输入比较的时候可能丢失精度。