数据类型
名字 | 别名 | 描述 |
---|
bigint | int8 | 有符号的8字节整数 |
bigserial | serial8 | 自动增长的8字节整数 |
bit [ (* n*) ] | | 定长位串 |
bit varying [ (* n*) ] | varbit [ (* n*) ] | 变长位串 |
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)地址 |
macaddr8 | | MAC(Media Access Control)地址(EUI-64格式) |
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数据 |
SQL指定的类型:bigint
、bit
、bit varying
、boolean
、char
、character varying
、character
、varchar
、date
、double precision
、integer
、interval
、numeric
、decimal
、real
、smallint
、time
(有时区或无时区)、timestamp
(有时区或无时区)、xml
。
每种数据类型都有一个由其输入和输出函数决定的外部表现形式。许多内建的类型有明显的格式。不过,许多类型要么是PostgreSQL所特有的(例如几何路径),要么可能是有几种不同的格式(例如日期和时间类型)。 有些输入和输出函数是不可逆的,即输出函数的结果和原始输入比较时可能丢失精度。
数字类型
名字 | 存储尺寸 | 描述 | 范围 |
---|
smallint | 2字节 | 小范围整数 | -32768 to +32767 |
integer | 4字节 | 整数的典型选择 | -2147483648 to +2147483647 |
bigint | 8字节 | 大范围整数 | -9223372036854775808 to +9223372036854775807 |
decimal | 可变 | 用户指定精度,精确 | 最高小数点前131072位,以及小数点后16383位 |
numeric | 可变 | 用户指定精度,精确 | 最高小数点前131072位,以及小数点后16383位 |
real | 4字节 | 可变精度,不精确 | 6位十进制精度 |
double precision | 8字节 | 可变精度,不精确 | 15位十进制精度 |
smallserial | 2字节 | 自动增加的小整数 | 1到32767 |
serial | 4字节 | 自动增加的整数 | 1到2147483647 |
bigserial | 8字节 | 自动增长的大整数 | 1到9223372036854775807 |
货币类型
名字 | 存储尺寸 | 描述 | 范围 |
---|
money | 8 bytes | 货币额 | -92233720368547758.08到+92233720368547758.07 |
字符类型
名字 | 描述 |
---|
character varying(* n*) , varchar(* n*) | 有限制的变长 |
character(* n*) , char(* n*) | 定长,空格填充 |
text | 无限变长 |
二进制类型
名字 | 存储尺寸 | 描述 |
---|
bytea | 1或4字节外加真正的二进制串 | 变长二进制串 |
日期时间类型
名字 | 存储尺寸 | 描述 | 最小值 | 最大值 | 解析度 |
---|
timestamp [ (* p*) ] [ without time zone ] | 8字节 | 包括日期和时间(无时区) | 4713 BC | 294276 AD | 1微秒 |
timestamp [ (* p*) ] with time zone | 8字节 | 包括日期和时间,有时区 | 4713 BC | 294276 AD | 1微秒 |
date | 4字节 | 日期(没有一天中的时间) | 4713 BC | 5874897 AD | 1日 |
time [ (* p*) ] [ without time zone ] | 8字节 | 一天中的时间(无日期) | 00:00:00 | 24:00:00 | 1微秒 |
time [ (* p*) ] with time zone | 12字节 | 仅仅是一天中的时间(没有日期),带有时区 | 00:00:00+1459 | 24:00:00-1459 | 1微秒 |
interval [ * fields* ] [ (* p*) ] | 16字节 | 时间间隔 | -178000000年 | 178000000年 | 1微秒 |
布尔类型
几何类型
名字 | 存储尺寸 | 表示 | 描述 |
---|
point | 16字节 | 平面上的点 | (x,y) |
line | 32字节 | 无限长的线 | {A,B,C} |
lseg | 32字节 | 有限线段 | ((x1,y1),(x2,y2)) |
box | 32字节 | 矩形框 | ((x1,y1),(x2,y2)) |
path | 16+16n字节 | 封闭路径(类似于多边形) | ((x1,y1),…) |
path | 16+16n字节 | 开放路径 | [(x1,y1),…] |
polygon | 40+16n字节 | 多边形(类似于封闭路径) | ((x1,y1),…) |
circle | 24字节 | 圆 | <(x,y),r>(中心点和半径) |
网络地址类型
名字 | 存储尺寸 | 描述 |
---|
cidr | 7或19字节 | IPv4和IPv6网络 |
inet | 7或19字节 | IPv4和IPv6主机以及网络 |
macaddr | 6字节 | MAC地址 |
macaddr8 | 8 bytes | MAC地址(EUI-64格式) |
postgres数据结构与java数据结构对比
编号 | 数据库类型 | JAVA类型 | JDBC索引 |
---|
1 | varchar | java.lang.String | 12 |
2 | char | java.lang.String | 1 |
2 | text | java.lang.String | 12 |
3 | int2 | java.lang.Integer | 5 |
4 | int4 | java.lang.Integer | 4 |
5 | int8 | java.lang.Long | -5 |
6 | numeric | java.math.BigDecimal | 2 |
7 | float4 | java.lang.Float | 7 |
8 | float8 | java.lang.Double | 8 |
9 | money | java.lang.Double | 8 |
10 | bit | java.lang.Boolean | -7 |
11 | bool | java.lang.Boolean | -7 |
12 | time | java.sql.Time | 92 |
13 | timestamp | java.sql.Timestamp | 93 |