PostgreSQL 基本知识

目录

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 命令:

    SQL
    1CREATE EXTENSION 扩展名;

    例如,启用 uuid-ossp 扩展:

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

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

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

    SQL
    1DROP EXTENSION 扩展名;

总结:

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