- 支持试读
临时表
本章将讨论 PostgreSQL 的临时表。 - 支持试读
物化视图
本章将讨论 PostgreSQL 的物化视图。它可以用来缓存复杂且昂贵的查询结果,并允许你定期刷新此结果。 递归查询
本章我们将讨论使用CTE来构建 PostgreSQL 递归查询。递归视图
本章我们将讨论 PostgreSQL 的递归视图。窗口函数
本章我们将讨论窗口函数,包括:`CUME_DIST`、`DENSE_RANK`、`FIRST_VALUE`、`LAG`、`LAST_VALUE`、`LEAD`、`NTILE`、`NTH_VALUE`、`PERCENT_RANK`、`RANK` 和 `ROW_NUMBER`等。JSON 和 JSONB 类型
PostgreSQL 原生支持 JSON 数据类型,提供了诸多操作 JSON 的运算符和函数。同时还可以给 JSON 数据创建索引。除了 JSON类型,PostgreSQL 还提供了更先进的 JSONB 数据类型。- 支持试读
UUID
PostgreSQL 支持 UUID 类型。 数组
本章将讨论数组。数组在 PostgreSQL 扮演重要的角色。HSTORE
PostgreSQL 的 hstore 类型,用于存储键值对。PostgreSQL 集群
本章我们将以一主两从的架构讨论 PostgreSQL 的集群。我们将通过本地虚拟机(IPV4)和线上多台 VPS (IPV6)分别进行演示。使用自定义类型实现 PostgreSQL 无符号整数并与 Rust 集成
本章我们将通过 PostgreSQL 的自定义类型来实现无符号整型。同时,还会将其与 sqlx 进行映射,并使用 axum 开发一个简单的 RESTful API 来使用它们。
UUID
- 415
- 2023-08-03 08:01:33
PostgreSQL 支持 UUID 类型。
安装 uuid-ossp
模块
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
创建一张使用 UUID 为主键的表:
CREATE TABLE contacts (
contact_id uuid DEFAULT uuid_generate_v4 (),
first_name VARCHAR NOT NULL,
last_name VARCHAR NOT NULL,
email VARCHAR NOT NULL,
phone VARCHAR,
PRIMARY KEY (contact_id)
);
插入一些示例数据:
INSERT INTO contacts (
first_name,
last_name,
email,
phone
)
VALUES
(
'John',
'Smith',
'[email protected]',
'408-237-2345'
),
(
'Jane',
'Smith',
'[email protected]',
'408-237-2344'
),
(
'Alex',
'Smith',
'[email protected]',
'408-237-2343'
);
查询记录:
SELECT * FROM contacts;
/* 结果
contact_id | first_name | last_name | email | phone
--------------------------------------+------------+-----------+------------------------+--------------
9815c410-80b6-4309-b4e7-c47ec638da6f | John | Smith | [email protected] | 408-237-2345
f51d0b1d-c221-405f-a09b-04c68df1f0c8 | Jane | Smith | [email protected] | 408-237-2344
2ead7c0b-cfb0-4c0c-b137-2ce239f3b4d6 | Alex | Smith | [email protected] | 408-237-2343
(3 rows)
*/