PostgreSQL 教程

五月 1, 2024

PostgreSQL 教程可帮助您快速了解 PostgreSQL。您将通过许多实际示例快速掌握 PostgreSQL,并将这些知识应用于使用 PostgreSQL 开发应用程序。

PostgreSQL Tutorial

如果你是 …

  • 寻求快速学习 PostgreSQL。
  • 使用 PostgreSQL 作为后端数据库管理系统开发应用程序。
  • 从其他数据库管理系统(例如 MySQL、Oracle 和 Microsoft SQL Server)迁移到 PostgreSQL。

您将在此网站上找到快速有效地开始使用 PostgreSQL 所需的所有信息。

PostgreSQL 教程演示了 PostgreSQL 的许多独特功能,这些功能使其成为最先进的开源数据库管理系统。

PostgreSQL 入门

img

本部分向您展示如何在 Windows、Linux 和 macOS 上安装 PostgreSQL,帮助您开始使用 PostgreSQL。您还将学习如何使用 psql 工具连接到 PostgreSQL,以及如何将示例数据库加载到 PostgreSQL 中进行练习。

PostgreSQL 基础教程

首先,您将学习如何使用基本数据查询技术从单个表中查询数据,包括查询数据、对结果集进行排序和过滤行。然后,您将了解高级查询,例如连接多个表、使用集合操作以及构造子查询。最后,您将学习如何管理数据库表,例如创建新表或修改现有表的结构。

第 1 节. 查询数据

  • 简单查询 – 向您展示如何从单个表中查询数据。
  • 列别名 – 了解如何为查询中的列或表达式分配临时名称。
  • 排序 – 指导您如何对查询返回的结果集进行排序。
  • 去重查询 – 为您提供一个删除结果集中重复行的子句。
  • 分页查询 – 指导您如何对查询返回的结果集进行分页。

第 2 节. 过滤数据

  • WHERE – 根据指定条件过滤行。
  • LIMIT – 获取查询生成的行的子集。
  • FETCH – 限制查询返回的行数。
  • IN – 选择与值列表中的任何值匹配的数据。
  • BETWEEN – 选择值范围内的数据。
  • LIKE – 基于模式匹配过滤数据。
  • IS NULL – 检查值是否为空。

第 3 节. 连接多个表

  • 连接 – 向您展示 PostgreSQL 中连接的简要概述。
  • 表别名 – 描述如何在查询中使用表别名。
  • 内连接 – 从一个表中选择在其他表中具有相应行的行。
  • 左连接 – 从一个表中选择行,这些行在其他表中可能有也可能没有对应的行。
  • 自连接 – 通过将表与自身进行比较来将表与其自身连接。
  • 完全外连接 – 使用完全连接查找一个表中在另一个表中没有匹配行的行。
  • 交叉连接 – 生成两个或多个表中的行的笛卡尔积。
  • 自然连接 – 根据连接表中的公共列名称,使用隐式连接条件连接两个或多个表。
  • 横向连接 – 通过连接交叉引用子查询中的行,和构建复合结果集。

第 4 节. 数据分组

  • GROUP BY – 将行分成组并对每个组应用聚合函数。
  • HAVING – 对组应用条件。

第 5 节. 集合运算

  • UNION – 将多个查询的结果集合并为一个结果集。
  • INTERSECT – 组合两个或多个查询的结果集并返回一个结果集,该结果集的行都出现在两个结果集中。
  • EXCEPT – 返回第一个查询中未出现在第二个查询的输出中的行。

第 6 节. 分组集、多维分组和汇总

  • 分组集 – 在报告中生成多个分组集。
  • CUBE – 定义多个分组集,其中包括所有可能的维度组合。
  • ROLLUP – 生成包含总计和小计的报告。

第 7 节. 子查询

  • 子查询 – 编写一个嵌套在另一个查询中的查询。
  • ANY – 通过将某个值与子查询返回的一组值进行比较来检索数据。
  • ALL – 通过将值与子查询返回的值列表进行比较来查询数据。
  • EXISTS – 检查子查询返回的行是否存在。

第 8 节. 公共表表达式

第 9 节. 修改数据

在本节中,您将学习如何使用INSERT语句向表中插入数据、使用UPDATE语句修改现有数据以及使用DELETE语句删除数据。此外,您还将学习如何使用 UPSERT 语句来合并数据。

  • 插入 – 指导您如何将单行插入表中。
  • 插入多行 – 向您展示如何在表中插入多行。
  • 更新 – 更新表中的现有数据。
  • 连接更新 – 根据另一个表中的值更新表中的值。
  • 删除 – 删除表中的数据。
  • 连接删除 – 根据另一个表中的值删除表中的行。
  • UPSERT – 如果新行已存在于表中,则插入或更新数据。

第 10 节. 事务

  • PostgreSQL 事务 – 向您展示如何使用BEGINCOMMITROLLBACK语句,来处理 PostgreSQL 中的事务。
  • PostgreSQL 子事务 – 向您展示如何使用SAVEPOINTROLLBACK TO SAVEPOINTRELEASE SAVEPOINT语句,来处理 PostgreSQL 子事务。

第 11 节. 导入和导出数据

您将学习如何使用COPY命令、DBeaver 工具,以 CSV、SQL 文件格式对 PostgreSQL 数据进行导入和导出。

第 12 节. 管理表

在本节中,您将开始探索 PostgreSQL 数据类型,并向您展示如何创建新表和修改现有表的结构。

  • 数据类型 – 涵盖最常用的 PostgreSQL 数据类型。
  • 创建表 – 指导您如何在数据库中创建新表。
  • SELECT INTOCREATE TABLE AS – 向您展示如何从查询的结果集创建新表。
  • 使用 SERIAL 自增列 – 使用 SERIAL 将自动增量列添加到表中。
  • 序列 – 向您介绍序列并描述如何使用序列生成数字序列。
  • 标识列 – 向您展示如何使用标识列。
  • 更改表 – 修改现有表的结构。
  • 重命名表 – 将表的名称更改为新名称。
  • 添加列 – 向您展示如何向现有表添加一列或多列。
  • 删除列 – 演示如何删除表的列。
  • 更改列数据类型 – 向您展示如何更改列的数据。
  • 重命名列 – 说明如何重命名表中的一列或多列。
  • 删除表 – 删除现有表及其所有依赖对象。
  • 截断表 – 快速有效地删除大表中的所有数据。
  • 临时表 – 向您展示如何使用临时表。
  • 复制表 – 向您展示如何将表格复制到新表格。

第 13 节. 了解 PostgreSQL 约束

  • 主键 – 说明在创建表或向现有表添加主键时如何定义主键。
  • 外键 – 展示如何在创建新表时定义外键约束或为现有表添加外键约束。
  • 检查约束 – 添加逻辑以基于布尔表达式检查值。
  • 唯一约束 – 确保一列或一组列中的值在整个表中是唯一的。
  • 非空约束 – 确保列中的值不是NULL

第 14 节. 深入了解 PostgreSQL 数据类型

  • 布尔型 – 使用布尔数据类型存储TRUEFALSE值。
  • 字符型 – 了解如何使用各种字符类型,包括CHARVARCHARTEXT
  • NUMERIC – 向您展示如何使用NUMERIC类型来存储需要精度的值。
  • 整型 – 向您介绍 PostgreSQL 中的各种整数类型,包括SMALLINTINTBIGINT
  • DATE – 引入DATE用于存储日期值的数据类型。
  • 时间戳 – 快速了解时间戳数据类型。
  • 间隔 – 向您展示如何使用间隔数据类型有效地处理一段时间。
  • TIME – 使用TIME数据类型来管理一天中的时间值。
  • UUID – 指导您如何使用UUID数据类型以及如何使用提供的模块生成UUID值。
  • 数组 – 向您展示如何使用数组,并向您介绍一些用于数组操作的方便函数。
  • hstore – 向您介绍数据类型,它是存储在 PostgreSQL 中单个值中的一组键/值对。
  • JSON – 说明如何使用 JSON 数据类型,并向您展示如何使用一些最重要的 JSON 运算符和函数。
  • 用户定义的数据类型 – 向您展示如何使用CREATE DOMAINCREATE TYPE语句创建用户定义的数据类型。

第 15 节. 条件表达式和运算符

  • CASE – 向您展示如何使用CASE表达式构成条件查询。
  • COALESCE – 返回第一个非空参数。您可以使用它将NULL替换为一个默认值。
  • NULLIF – 如果第一个参数等于第二个参数则返回NULL
  • CAST – 从一种数据类型转换为另一种数据类型,例如,从字符串转换为整数,从字符串转换为日期。

第 16 节. PostgreSQL 实用程序

  • psql 命令 – 向您展示最常见的 psql 命令,帮助您更快、更有效地与 psql 交互。

第 17 节. 故障处理

第 18 节. PostgreSQL 技巧

PostgreSQL 高级教程

这个 PostgreSQL 高级教程涵盖了高级概念,包括存储过程、索引、视图、触发器和数据库管理。

PostgreSQL 函数

img

PostgreSQL 为内置数据类型提供了大量的函数。本节向您展示如何使用一些最常用的 PostgreSQL 函数。

PostgreSQL PL/pgSQL

img

此 PostgreSQL 存储过程部分将逐步向您展示如何使用 PL/pgSQL 过程语言开发 PostgreSQL 用户定义函数。

PostgreSQL 触发器

img

本节向您介绍 PostgreSQL 触发器概念,并展示如何在 PostgreSQL 中管理触发器。

PostgreSQL 视图

img

我们将向您介绍数据库视图概念,并向您展示如何管理视图,例如在数据库中创建、更改和删除视图。

PostgreSQL 索引

img

PostgreSQL 索引是增强数据库性能的有效工具。索引可以帮助数据库服务器比没有索引时更快地找到特定行。

PostgreSQL 优化

img

本节向您介绍 PostgreSQL 性能优化,并展示如何在 PostgreSQL 中优化各种场景的性能问题。

PostgreSQL 管理

img

PostgreSQL 管理涵盖 PostgreSQL 数据库服务器最重要的活动,包括角色和数据库管理、备份和恢复。

PostgreSQL 监控

img

PostgreSQL 监控涵盖 PostgreSQL 数据库服务器最重要的监控和运维活动。

应用程序编程接口

本节向您展示,如何从使用流行编程语言(例如 Java、Python 和 PHP)的应用程序,与 PostgreSQL 数据库进行交互。

  • PostgreSQL Java 教程 – 此 PostgreSQL JDBC 部分向您展示,如何使用 Java JDBC 驱动程序与 PostgreSQL 数据库进行交互。
  • PostgreSQL Python 教程 – 此 PostgreSQL Python 部分向您展示,如何使用 Python 编程语言与 PostgreSQL 数据库进行交互。