PostgreSQL 支持哪些数据类型?

推荐答案

PostgreSQL 支持多种数据类型,主要包括以下几类:

  1. 数值类型

    • 整数类型:SMALLINT, INTEGER, BIGINT
    • 浮点数类型:REAL, DOUBLE PRECISION
    • 精确数值类型:NUMERIC, DECIMAL
    • 序列类型:SERIAL, BIGSERIAL
  2. 字符类型

    • 定长字符类型:CHAR(n)
    • 变长字符类型:VARCHAR(n)
    • 文本类型:TEXT
  3. 日期/时间类型

    • 日期类型:DATE
    • 时间类型:TIME, TIMESTAMP
    • 时间间隔类型:INTERVAL
  4. 布尔类型

    • BOOLEAN
  5. 二进制数据类型

    • BYTEA
  6. 几何类型

    • POINT, LINE, LSEG, BOX, PATH, POLYGON, CIRCLE
  7. 网络地址类型

    • CIDR, INET, MACADDR
  8. JSON 类型

    • JSON, JSONB
  9. 数组类型

    • 数组类型:ARRAY
  10. 复合类型

    • 用户自定义的复合类型
  11. 范围类型

    • INT4RANGE, INT8RANGE, NUMRANGE, TSRANGE, TSTZRANGE, DATERANGE
  12. UUID 类型

    • UUID
  13. XML 类型

    • XML
  14. 其他类型

    • ENUM, TSVECTOR, TSQUERY, BIT, BIT VARYING

本题详细解读

PostgreSQL 提供了丰富的数据类型,以满足不同场景下的数据存储需求。以下是对各类数据类型的详细解读:

  1. 数值类型

    • 整数类型适用于存储整数值,SMALLINT 占用 2 字节,INTEGER 占用 4 字节,BIGINT 占用 8 字节。
    • 浮点数类型适用于存储近似数值,REAL 占用 4 字节,DOUBLE PRECISION 占用 8 字节。
    • 精确数值类型适用于存储需要高精度的数值,NUMERICDECIMAL 可以指定精度和小数位数。
    • 序列类型用于自动生成唯一的整数值,通常用于主键。
  2. 字符类型

    • 定长字符类型 CHAR(n) 存储固定长度的字符串,不足部分用空格填充。
    • 变长字符类型 VARCHAR(n) 存储可变长度的字符串,最大长度为 n
    • 文本类型 TEXT 存储任意长度的字符串,没有长度限制。
  3. 日期/时间类型

    • 日期类型 DATE 存储日期值。
    • 时间类型 TIME 存储时间值,TIMESTAMP 存储日期和时间值。
    • 时间间隔类型 INTERVAL 存储时间间隔。
  4. 布尔类型

    • BOOLEAN 类型存储 TRUEFALSE 值。
  5. 二进制数据类型

    • BYTEA 类型用于存储二进制数据。
  6. 几何类型

    • 几何类型用于存储几何图形数据,如点、线、多边形等。
  7. 网络地址类型

    • 网络地址类型用于存储 IP 地址、MAC 地址等网络相关数据。
  8. JSON 类型

    • JSONJSONB 类型用于存储 JSON 数据,JSONB 以二进制格式存储,支持索引。
  9. 数组类型

    • 数组类型用于存储同类型元素的数组。
  10. 复合类型

    • 复合类型允许用户定义包含多个字段的自定义类型。
  11. 范围类型

    • 范围类型用于存储一个范围内的值,如整数范围、日期范围等。
  12. UUID 类型

    • UUID 类型用于存储通用唯一标识符。
  13. XML 类型

    • XML 类型用于存储 XML 数据。
  14. 其他类型

    • ENUM 类型用于存储枚举值,TSVECTORTSQUERY 用于全文搜索,BITBIT VARYING 用于存储位串。

PostgreSQL 的数据类型设计灵活且功能强大,能够满足各种复杂的数据存储需求。

纠错
反馈