PostgreSQL中的数据类型

PostgreSQL中的数据类型

数值类型

类型 存储长度 描述 范围
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, intbigint 类型的值可以转换为 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 有 truefalse 两个状态,第三种状态是 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),…)
皖ICP备20014602号
Built with Hugo
Theme Stack designed by Jimmy