数值类型
类型 |
存储长度 |
描述 |
范围 |
smallint |
2 字节 |
小整数值 |
-32768 到 32767 |
integer |
4 字节 |
整数值 |
-2147483648 到 2147483647 |
bigint |
8 字节 |
大整数值 |
-9223372036854775808 到 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
类型存储带有固定小数精度的货币金额
numeric
, int
和 bigint
类型的值可以转换为 money
,不建议使用浮点数来处理货币类型,因为存在舍入错误的可能性
类型 |
存储长度 |
描述 |
范围 |
money |
8 字节 |
货币金额 |
-92233720368547758.08 到 +92233720368547758.07 |
字符类型
类型 |
描述 |
varchar(n) |
变长,有长度限制 |
charractor(n), char(n) |
固定长度,不足补空白 |
text |
变长, 无长度限制 |
时间|日期类型
类型 |
存储长度 |
描述 |
最低值 |
最高值 |
分辨率 |
timestamp[(p)][without time zone] |
8 字节 |
日期和时间(无时区) |
4713BC |
294276AD |
1毫秒 / 14 位 |
timestamp[(p)][with time zone] |
8 字节 |
日期和时间(带时区) |
4713BC |
294276AD |
1毫秒 / 14 位 |
date |
4 字节 |
日期(无时区) |
4713BC |
5874897AD |
无 |
time[(p)][without time zone] |
8 字节 |
只用于一日内时间 |
00:00:00 |
24:00:00 |
1毫秒 / 14 位 |
time[(p)]with time zone |
12 字节 |
只用于一日内时间(带时区) |
00:00:00+1459 |
24:00:00-1459 |
1毫秒 / 14 位 |
interval[fields][(p)] |
12 字节 |
时间间隔 |
-178000000年 |
178000000年 |
1毫秒 / 14 位 |
布尔
boolean 有 true
和 false
两个状态,第三种状态是 null
类型 |
存储长度 |
描述 |
boolean |
1 字节 |
真假值, true or false |
枚举类型
PostgreSQL 中的枚举类型类似于c语言中的enum类型,与其他类型不同的是枚举类型需要使用 CREATE TYPE
命令来创建。
1
|
create type mood as enum('sad','ok', 'happy');
|
创建一周中的好几天,如下所示:
1
|
create type week as enum('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');
|
几何类型
几何数据类型表示二维的平面物体
类型 |
存储长度 |
说明 |
表现形式 |
point |
16 字节 |
平面中的点 |
(x,y) |
line |
32 字节 |
平面上的直线 |
((x1, y1), (x2, y2)) |
lseg |
32 字节 |
(有限)平面上的线段 |
((x1, y1), (x2, y2)) |
box |
32 字节 |
矩形 |
((x1, y1), (x2, y2)) |
path |
16 + 16n |
闭合路径(与多边形类似) |
((x1,y1),…) |
path |
16 + 16n |
开放路径 |
((x1,y1),…) |
polygon |
16 + 16n |
非闭合路径(与多边形类似) |
((x1,y1),…) |