PostgreSQL 数据类型

类别 类型名称 描述
数值类型
SMALLINT 2 字节小整数
INTEGER (或 INT) 4 字节整数
BIGINT 8 字节大整数
SMALLSERIAL 2 字节自增整数
SERIAL 4 字节自增整数
BIGSERIAL 8 字节自增整数
REAL 4 字节单精度浮点数
DOUBLE PRECISION 8 字节双精度浮点数
NUMERIC (或 DECIMAL) 精确小数
字符类型
CHAR(n) 定长字符串
VARCHAR(n) 变长字符串
TEXT 无长度限制字符串
日期/时间类型
DATE 日期
TIME 时间
TIMESTAMP 时间戳
INTERVAL 时间间隔
布尔类型
BOOLEAN (或 BOOL) 布尔值(true/false)
二进制类型
BYTEA 二进制数据
几何类型
POINT
LINE 线
LSEG 线段
BOX 矩形框
PATH 路径
POLYGON 多边形
CIRCLE
网络地址类型
CIDR 网络地址(CIDR 格式)
INET IP 地址
MACADDR MAC 地址
文本搜索类型
TSVECTOR 文本搜索向量
TSQUERY 文本搜索查询
UUID 类型
UUID 通用唯一标识符
JSON 类型
JSON JSON 数据
JSONB 二进制格式的 JSON 数据
数组类型
数据类型[] 数组(如 INTEGER[], TEXT[]
其他类型
XML XML 数据
RANGE 范围类型
DOMAIN 自定义域类型
COMPOSITE 复合类型

PostgreSQL 扩展

什么是扩展?

在 PostgreSQL 中,扩展 是一种可以添加到数据库中的额外功能模块。它们提供了一些额外的功能、函数或数据类型,帮助你更方便地完成某些任务。你可以把扩展理解为 PostgreSQL 的“插件”。

扩展的作用:

PostgreSQL 本身已经非常强大,但通过扩展,你可以进一步增强它的功能。比如:

  • 添加新的数据类型(如 UUID)。
  • 提供新的函数(如生成随机数、加密函数等)。
  • 支持更复杂的操作(如全文搜索、地理空间数据处理等)。

常见的扩展:

  1. uuid-ossp

    • 提供生成 UUID(通用唯一标识符)的函数。
    • 比如 uuid_generate_v4() 可以生成随机 UUID。
  2. pgcrypto

    • 提供加密和解密函数。
    • 比如可以对密码进行哈希存储。
  3. postgis

    • 提供地理空间数据处理功能。
    • 比如可以存储和查询地图上的点、线、面等数据。
  4. hstore

    • 提供键值对存储功能。
    • 比如可以在一个字段中存储类似 JSON 的数据。

如何使用扩展?

  1. 启用扩展: 在 PostgreSQL 中,扩展需要手动启用。启用方法很简单,只需要执行以下 SQL 命令:

    1
    
    CREATE EXTENSION 扩展名;
    

    例如,启用 uuid-ossp 扩展:

    1
    
    CREATE EXTENSION "uuid-ossp";
    
  2. 使用扩展的功能: 启用扩展后,你就可以使用它提供的功能了。比如:

    • 使用 uuid-ossp 生成 UUID:
      1
      
      SELECT uuid_generate_v4();
      
    • 使用 pgcrypto 加密数据:
      1
      
      SELECT crypt('password', gen_salt('bf'));
      
  3. 查看已启用的扩展: 你可以通过以下命令查看当前数据库中已经启用的扩展:

    1
    
    SELECT * FROM pg_extension;
    
  4. 删除扩展: 如果你不再需要某个扩展,可以通过以下命令删除它:

    1
    
    DROP EXTENSION 扩展名;
    

总结:

  • 扩展 是 PostgreSQL 中的功能模块,可以增强数据库的能力。
  • 常见的扩展有 uuid-ossppgcryptopostgis 等。
  • 使用扩展前需要先启用:CREATE EXTENSION 扩展名;
  • 扩展提供了额外的数据类型、函数或功能,帮助你更方便地处理数据。