PostgreSQL 常用系统数据类型汇总
PostgreSQL 提供了丰富的数据类型,以下是一些常用的系统数据类型分类和说明:
数值类型
-
整数类型:
smallint:2字节,范围 -32768 到 +32767。integer:4字节,范围 -2147483648 到 +2147483647。bigint:8字节,范围 -9223372036854775808 到 +9223372036854775807。- 自增整数
smallserial 2字节自增。
serial 4字节自增。
bigserial 8字节自增。
-
浮点数类型:
real:4字节,单精度浮点数,精度约6位小数。double precision:8字节,双精度浮点数,精度约15位小数。 --不是准确小数。numeric(p, s):精确数值,p为总位数,s为小数位数。- decimal(p, s)
:精确数值,p为总位数,s`为小数位数。
字符类型
varchar(n):可变长度字符串,最大长度为n。(别名:character varying(n))char(n):固定长度字符串,长度为n,不足部分用空格填充。(别名:character (n))text:无限长度的可变字符串,适合存储大文本。
日期和时间类型
date:存储日期,格式为YYYY-MM-DD。time:存储时间,格式为HH:MM:SS。timestamp(n):存储日期和时间,格式为YYYY-MM-DD HH:MM:SS`。- timestamptz(n):带时区得数据类型
interval:存储时间间隔。

布尔类型
boolean:存储逻辑值,取值为true、false或NULL。
布尔类型总是存储为t和f。
二进制类型
bytea:存储二进制数据,如图片或文件内容。
网络地址类型
inet:存储IPv4或IPv6地址。cidr:存储网络地址(带子网掩码)。macaddr:存储MAC地址。
JSON类型
json:存储JSON格式数据,不验证有效性。jsonb:存储二进制JSON格式数据,支持索引和高效查询。
数组类型
- 支持将任何基本类型或复合类型作为数组,例如
integer[]表示整数数组。
UUID类型
uuid:存储通用唯一标识符(UUID),通常用于分布式系统中的唯一ID。
几何类型
point:存储二维坐标点。line:存储无限直线。polygon:存储封闭多边形。

全文搜索类型
tsvector:存储文本搜索向量。tsquery:存储文本搜索查询。
枚举类型
- 用户自定义的枚举类型,例如
CREATE TYPE mood AS ENUM ('happy', 'sad');。
复合类型
- 用户自定义的复合类型,可以包含多个字段。
数据类型选择建议:

这些数据类型覆盖了大多数常见的数据库需求,PostgreSQL 的灵活性允许用户根据具体场景选择最合适的数据类型。