跳至主要内容

PostgreSQL 中的 10 个命令行工具

在本教程中,了解 PostgreSQL 中 10 个实用的命令行工具,帮助您高效地与数据库交互。
· 7分钟 阅读

使用 AI 探索

PostgreSQL 是最受认可的开源关系型数据库管理系统(RDBMS)之一。PostgreSQL 的默认安装自带一个 psql 提示符,它是 PostgreSQL 的类终端界面。另一方面,pgAdmin 提供了用于在 PostgreSQL 中操作数据库的图形界面。使用 psql,除了执行 SQL 查询之外,您还能获得更多功能,其中一些您将在本教程中学习。

您将从学习如何获取 PostgreSQL 服务器上的数据库列表开始,随后逐步进入更进阶的内容。我们开始吧。

注意:本教程假设您已熟悉 SQL(与 RDBMS 交互的通用语言)和 PostgreSQL。您可以通过以下资源快速回顾基础:

准备工作

建议您准备一个结构完善的数据库以便跟随本教程操作。您可以使用此备份文件并将其还原到您的 PostgreSQL 服务器。若想了解具体步骤,您可以阅读这篇文章。

如果您在想 psql 是什么;来自PostgreSQL 官方网站的这段摘录对此有精彩的阐述——

psql 是 PostgreSQL 的基于终端的前端。它允许您交互式地输入查询、将其提交给 PostgreSQL,并查看查询结果。或者,输入也可以来自文件或命令行参数。此外,psql 提供了许多元命令和多种类似 shell 的功能,以便于编写脚本并自动化各种任务。

如前所述,您将在本教程中学习十个最实用的 psql 命令。在继续之前,请确保您已安装 PostgreSQL(最好是 >= 9.4 的版本)。这篇文章将帮助您完成安装。

下一步是进入如下提示符:

prompt

在 Windows 上,您可以直接在开始菜单的搜索栏中输入 psql 并导航到它。它通常被称为 psql shell,会给出 psql 提示符。正如您所见,提示符当前连接的是默认的 postgres 数据库。让我们看看这个本地 PostgreSQL 服务器中是否存在其他数据库。

1. 列出可用数据库

您可以使用 \l 命令获取所有可用数据库的列表。

Enlisting the Available Databases

如您所见,我有以下数据库:

  • datacamp_tutorials
  • postgres

其余条目可以忽略。现在,我们来查看当前数据库中可用的数据表列表。

2. 列出当前数据库中的可用数据表

\dt 可以做到这一点——

Enlisting the Available Tables in the Current Database

但不巧的是,postgres 数据库中并没有创建任何表(在数据库管理文献中,表也被称为关系)。让我们切换到另一个数据库,看看其中是否已创建了表。

3. 切换到另一个数据库

其语法为:\c <database_name>。假设您想切换到名为 datacamp_tutorials 的数据库,可以这样做——

`\c datacamp_tutorials`

Switching to Another Database

现在,使用 \dt 命令看看它是否有数据表——

如您所见,datacamp_tutorials 数据库包含以下四个表:

  • countries
  • route_table
  • station_code
  • train_table

假设您想查看某个特定表的结构细节,这通常被称为描述表。下面看看如何实现。

4. 描述特定数据表

通用语法是 \d <table_name>。假设您在 datacamp_tutorials 数据库中,想描述名为 countries 的表。命令为 \d countries ——

Describing a Particular Table

如您所见,\d countries 会给出许多关于该表的有用信息,例如列名、数据类型、列修饰符等。您可能还想知道当前 PostgreSQL 引擎的版本,例如用于文档记录。我们来看看怎么查询。

5. 查看 PostgreSQL 版本

SELECT version(); 可以完成此操作——

Knowing the Version of PostgreSQL

现在,假设您在几次操作之间忘记了刚才在 psql shell 中执行的上一条命令,而它很重要。别担心!您可以轻松找回。

6. 查看上一条已执行命令

\g 就是用于此目的——

Seeing the Previously Executed Command

如您所见,\g 会自动重新执行上一条命令。您可能更好奇,想查看当前运行的 PostgreSQL 引擎可用的所有 psql 命令列表。我们来看看。

7. 列出所有可用命令

您可以使用 \? 获取所有可用的 psql 命令列表——

Enlisting all the Available Commands

您或许还想了解不同数据库语句的语法,例如 SELECT、ALTER、DROP 等。您可以直接在 psql 提示符下完成。

8. 查看 PostgreSQL 语句语法

假设您想进一步了解 DROP 语句。\h DROP TABLE 可以帮到您——

Knowing the Syntaxes of PostgreSQL Statements

假设您想分析查询的执行时间。下面看看如何在 psql shell 中完成。

9. 查看查询的执行时间

为此,您需要先执行 \timing 命令。假设您想分析以下查询的执行时间——

select * from train_table limit 10;

您先执行 \timing 命令——

Knowing the Execution Times of Queries

启用计时选项后,您即可运行查询——

Knowing the Execution Times of Queries

如您所见,执行该查询耗时为 0.786 ms。执行时间因机器而异。接下来您将看到最后一个 psql 命令,它会在文本编辑器中提供您之前执行的命令/查询。

10. psql + 文本编辑器

如果您执行 \e 命令,它会在文本编辑器中打开上一条执行的命令/查询,并允许您编辑并重新运行。

psql + text editor

如您所见,e 命令会使用记事本文本编辑器打开先前执行的查询。

结论

在本教程中,您了解了十个实用的 psql 命令,可用于日常与数据库相关的工作。若想进一步学习 SQL,您可以尝试以下 DataCamp 课程:

主题