推荐答案
PostgreSQL 支持多种数据类型,主要包括以下几类:
数值类型:
- 整数类型:
SMALLINT,INTEGER,BIGINT - 浮点数类型:
REAL,DOUBLE PRECISION - 精确数值类型:
NUMERIC,DECIMAL - 序列类型:
SERIAL,BIGSERIAL
- 整数类型:
字符类型:
- 定长字符类型:
CHAR(n) - 变长字符类型:
VARCHAR(n) - 文本类型:
TEXT
- 定长字符类型:
日期/时间类型:
- 日期类型:
DATE - 时间类型:
TIME,TIMESTAMP - 时间间隔类型:
INTERVAL
- 日期类型:
布尔类型:
BOOLEAN
二进制数据类型:
BYTEA
几何类型:
POINT,LINE,LSEG,BOX,PATH,POLYGON,CIRCLE
网络地址类型:
CIDR,INET,MACADDR
JSON 类型:
JSON,JSONB
数组类型:
- 数组类型:
ARRAY
- 数组类型:
复合类型:
- 用户自定义的复合类型
范围类型:
INT4RANGE,INT8RANGE,NUMRANGE,TSRANGE,TSTZRANGE,DATERANGE
UUID 类型:
UUID
XML 类型:
XML
其他类型:
ENUM,TSVECTOR,TSQUERY,BIT,BIT VARYING
本题详细解读
PostgreSQL 提供了丰富的数据类型,以满足不同场景下的数据存储需求。以下是对各类数据类型的详细解读:
数值类型:
- 整数类型适用于存储整数值,
SMALLINT占用 2 字节,INTEGER占用 4 字节,BIGINT占用 8 字节。 - 浮点数类型适用于存储近似数值,
REAL占用 4 字节,DOUBLE PRECISION占用 8 字节。 - 精确数值类型适用于存储需要高精度的数值,
NUMERIC和DECIMAL可以指定精度和小数位数。 - 序列类型用于自动生成唯一的整数值,通常用于主键。
- 整数类型适用于存储整数值,
字符类型:
- 定长字符类型
CHAR(n)存储固定长度的字符串,不足部分用空格填充。 - 变长字符类型
VARCHAR(n)存储可变长度的字符串,最大长度为n。 - 文本类型
TEXT存储任意长度的字符串,没有长度限制。
- 定长字符类型
日期/时间类型:
- 日期类型
DATE存储日期值。 - 时间类型
TIME存储时间值,TIMESTAMP存储日期和时间值。 - 时间间隔类型
INTERVAL存储时间间隔。
- 日期类型
布尔类型:
BOOLEAN类型存储TRUE或FALSE值。
二进制数据类型:
BYTEA类型用于存储二进制数据。
几何类型:
- 几何类型用于存储几何图形数据,如点、线、多边形等。
网络地址类型:
- 网络地址类型用于存储 IP 地址、MAC 地址等网络相关数据。
JSON 类型:
JSON和JSONB类型用于存储 JSON 数据,JSONB以二进制格式存储,支持索引。
数组类型:
- 数组类型用于存储同类型元素的数组。
复合类型:
- 复合类型允许用户定义包含多个字段的自定义类型。
范围类型:
- 范围类型用于存储一个范围内的值,如整数范围、日期范围等。
UUID 类型:
UUID类型用于存储通用唯一标识符。
XML 类型:
XML类型用于存储 XML 数据。
其他类型:
ENUM类型用于存储枚举值,TSVECTOR和TSQUERY用于全文搜索,BIT和BIT VARYING用于存储位串。
PostgreSQL 的数据类型设计灵活且功能强大,能够满足各种复杂的数据存储需求。