推荐答案
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 的数据类型设计灵活且功能强大,能够满足各种复杂的数据存储需求。