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)。
- 提供新的函数(如生成随机数、加密函数等)。
- 支持更复杂的操作(如全文搜索、地理空间数据处理等)。
常见的扩展:
-
uuid-ossp:
- 提供生成 UUID(通用唯一标识符)的函数。
- 比如
uuid_generate_v4()
可以生成随机 UUID。
-
pgcrypto:
- 提供加密和解密函数。
- 比如可以对密码进行哈希存储。
-
postgis:
- 提供地理空间数据处理功能。
- 比如可以存储和查询地图上的点、线、面等数据。
-
hstore:
- 提供键值对存储功能。
- 比如可以在一个字段中存储类似 JSON 的数据。
如何使用扩展?
-
启用扩展: 在 PostgreSQL 中,扩展需要手动启用。启用方法很简单,只需要执行以下 SQL 命令:
1
CREATE EXTENSION 扩展名;
例如,启用
uuid-ossp
扩展:1
CREATE EXTENSION "uuid-ossp";
-
使用扩展的功能: 启用扩展后,你就可以使用它提供的功能了。比如:
- 使用
uuid-ossp
生成 UUID:1
SELECT uuid_generate_v4();
- 使用
pgcrypto
加密数据:1
SELECT crypt('password', gen_salt('bf'));
- 使用
-
查看已启用的扩展: 你可以通过以下命令查看当前数据库中已经启用的扩展:
1
SELECT * FROM pg_extension;
-
删除扩展: 如果你不再需要某个扩展,可以通过以下命令删除它:
1
DROP EXTENSION 扩展名;
总结:
- 扩展 是 PostgreSQL 中的功能模块,可以增强数据库的能力。
- 常见的扩展有
uuid-ossp
、pgcrypto
、postgis
等。 - 使用扩展前需要先启用:
CREATE EXTENSION 扩展名;
。 - 扩展提供了额外的数据类型、函数或功能,帮助你更方便地处理数据。