Skip to content

数据类型介绍 ​

数值类型 ​

PostgreSQL 提供多种精度的数值类型,适用于不同的存储与计算需求。

类型描述示例值
smallint2 字节整数100
integer4 字节整数100000
bigint8 字节整数922337203
decimal / numeric精确小数1234.56
real单精度浮点数3.14
double precision双精度浮点3.14159265

字符类型 ​

用于存储文本数据,支持多语言与 Unicode。

类型描述示例值
char(n)定长字符串'abc '
varchar(n)可变长,最多 n 个字符'hello'
text无限长度字符串'PostgreSQL'

建议使用 text 替代 varchar,除非有长度限制需求。

日期与时间类型 ​

PostgreSQL 拥有强大的时间处理功能。

类型描述示例值
date日期2025-01-01
timestamp无时区时间戳2025-01-01 12:34:56
timestamptz带时区时间戳2025-01-01 12:34:56+08
interval时间间隔1 day 2 hours

布尔类型 ​

sql
-- 只允许 true/false 或 't'/'f'
is_active BOOLEAN DEFAULT true;

枚举类型 ​

适合状态值等固定集合。

sql
CREATE TYPE status AS ENUM ('pending', 'active', 'archived');

CREATE TABLE orders (
  id SERIAL,
  state status
);

数组类型 ​

PostgreSQL 支持任意类型的数组。

sql
tags TEXT[];
numbers INTEGER[];

JSON 与 JSONB 类型 ​

  • json:保持原始结构,存储空间大,查询较慢
  • jsonb:二进制格式,支持索引和高效查询
sql
data JSONB NOT NULL;

UUID 类型 ​

用于唯一标识对象,推荐用于主键。

sql
id UUID DEFAULT gen_random_uuid();

需启用 pgcrypto 扩展或使用 uuid-ossp

自定义类型 ​

PostgreSQL 支持用户定义复杂类型,例如复合类型或域(domain)类型,增强结构表达能力。

小结 ​

PostgreSQL 提供丰富且强大的数据类型系统,涵盖结构化、半结构化、多维数据等多种需求,极大增强了数据模型的表达能力。

数据类型介绍 ​

数值类型 ​

PostgreSQL 提供多种精度的数值类型,适用于不同的存储与计算需求。

类型描述示例值
smallint2 字节整数100
integer4 字节整数100000
bigint8 字节整数922337203
decimal / numeric精确小数1234.56
real单精度浮点数3.14
double precision双精度浮点3.14159265

字符类型 ​

用于存储文本数据,支持多语言与 Unicode。

类型描述示例值
char(n)定长字符串'abc '
varchar(n)可变长,最多 n 个字符'hello'
text无限长度字符串'PostgreSQL'

建议使用 text 替代 varchar,除非有长度限制需求。

日期与时间类型 ​

PostgreSQL 拥有强大的时间处理功能。

类型描述示例值
date日期2025-01-01
timestamp无时区时间戳2025-01-01 12:34:56
timestamptz带时区时间戳2025-01-01 12:34:56+08
interval时间间隔1 day 2 hours

布尔类型 ​

sql
-- 只允许 true/false 或 't'/'f'
is_active BOOLEAN DEFAULT true;

枚举类型 ​

适合状态值等固定集合。

sql
CREATE TYPE status AS ENUM ('pending', 'active', 'archived');

CREATE TABLE orders (
  id SERIAL,
  state status
);

数组类型 ​

PostgreSQL 支持任意类型的数组。

sql
tags TEXT[];
numbers INTEGER[];

JSON 与 JSONB 类型 ​

  • json:保持原始结构,存储空间大,查询较慢
  • jsonb:二进制格式,支持索引和高效查询
sql
data JSONB NOT NULL;

UUID 类型 ​

用于唯一标识对象,推荐用于主键。

sql
id UUID DEFAULT gen_random_uuid();

需启用 pgcrypto 扩展或使用 uuid-ossp

自定义类型 ​

PostgreSQL 支持用户定义复杂类型,例如复合类型或域(domain)类型,增强结构表达能力。

小结 ​

PostgreSQL 提供丰富且强大的数据类型系统,涵盖结构化、半结构化、多维数据等多种需求,极大增强了数据模型的表达能力。

Released under the MIT License.