
PostgreSQL 支持的数据类型
PostgreSQL 支持的所有数据类型,并对每种数据类型进行详细介绍。
数值类型(Numeric Types)
- 整数类型(Integer Types)
smallint:2 字节的整数,范围 -32,768 到 32,767。integer(或int):4 字节的整数,范围 -2,147,483,648 到 2,147,483,647。bigint:8 字节的整数,范围 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。serial:自动递增的 4 字节整数,相当于integer。bigserial:自动递增的 8 字节整数,相当于bigint。
- 精确小数类型(Exact Numeric Types)
numeric(p, s):可变精度的数值,p 表示精度,s 表示小数位数。decimal(p, s):numeric的别名。
- 浮点数类型(Floating-Point Types)
real:4 字节浮点数,符合 IEEE 754 标准。double precision:8 字节浮点数,符合 IEEE 754 标准。
- 货币类型(Monetary Types)
money:货币数值类型,具有区域性货币符号。
字符串类型(Character Types)
- 字符类型(Character Types)
char(n):定长字符类型,长度为 n。varchar(n):变长字符类型,最大长度为 n。text:变长字符类型,没有长度限制。
二进制类型(Binary Types)
- 二进制数据类型(Binary Data Types)
bytea:存储二进制数据的变长数组。
日期和时间类型(Date/Time Types)
- 日期和时间类型(Date/Time Types)
date:日期类型(年月日)。time [ (p) ] [ without time zone ]:时间类型(时分秒),可选的精度 p。time [ (p) ] with time zone:包含时区的时间类型。timestamp [ (p) ] [ without time zone ]:时间戳类型(年月日时分秒),可选的精度 p。timestamp [ (p) ] with time zone:包含时区的时间戳类型。interval [ fields ] [ (p) ]:时间间隔,fields 可以是 YEAR, MONTH, DAY, HOUR, MINUTE, SECOND。
布尔类型(Boolean Type)
- 布尔类型(Boolean Type)
boolean:布尔类型,取值为true或false。
枚举类型(Enumerated Types)
- 枚举类型(Enumerated Types)
enum:用户定义的枚举类型。
几何类型(Geometric Types)
- 几何类型(Geometric Types)
point:平面上的一个点,表示为 (x, y)。line:无穷长的直线。lseg:线段,表示为两个点 (x1, y1) 到 (x2, y2)。box:矩形框,表示为两个对角点 (x1, y1), (x2, y2)。path:有序的点集合,表示一条路径。polygon:多边形,表示封闭的路径。circle:圆,表示为中心点和半径。
网络地址类型(Network Address Types)
- 网络地址类型(Network Address Types)
cidr:IPv4 或 IPv6 网络。inet:IPv4 或 IPv6 地址。macaddr:MAC 地址。
位串类型(Bit String Types)
- 位串类型(Bit String Types)
bit [ (n) ]:定长位串,长度为 n。bit varying [ (n) ]:变长位串,最大长度为 n。
文本搜索类型(Text Search Types)
- 文本搜索类型(Text Search Types)
tsvector:文本搜索向量。tsquery:文本搜索查询。
UUID 类型(UUID Type)
- UUID 类型(UUID Type)
uuid:通用唯一标识符。
XML 类型(XML Type)
- XML 类型(XML Type)
xml:用于存储 XML 数据。
JSON 类型(JSON Types)
- JSON 类型(JSON Types)
json:存储 JSON 数据,作为文本。jsonb:存储二进制格式的 JSON 数据,支持索引。
数组类型(Array Types)
- 数组类型(Array Types)
- 可以存储以上任意类型的数组。例如
integer[]、text[]。
- 可以存储以上任意类型的数组。例如
复合类型(Composite Types)
- 复合类型(Composite Types)
- 可以组合多个字段定义一个复合类型。
范围类型(Range Types)
- 范围类型(Range Types)
int4range:整数范围。int8range:大整数范围。numrange:数值范围。tsrange:不包含时区的时间戳范围。tstzrange:包含时区的时间戳范围。daterange:日期范围。
自定义类型(User-Defined Types)
- 自定义类型(User-Defined Types)
- 用户可以定义自己的数据类型,通过 PostgreSQL 的 CREATE TYPE 命令。
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自Tony's Blog
