PostgreSQL 教程: 实用 psql 命令

八月 16, 2023

摘要:在本教程中,我们为您提供了常见的 psql 命令列表,可帮助您更快、更有效地从 PostgreSQL 数据库服务器查询数据。

1) 连接 PostgreSQL 数据库

以下命令使用特定用户连接到数据库。按下Enter后 PostgreSQL 将会询问用户的密码。

psql -d database -U  user -W

例如,要使用postgres用户连接到dvdrental数据库,可以使用以下命令:

C:\Program Files\PostgreSQL\9.5\bin>psql -d dvdrental -U postgres -W
Password for user postgres:
dvdrental=#

如果要连接到运行在另一台主机上的数据库,请添加 -h 选项,如下所示:

psql -h host -d database -U user -W

如果您想使用 SSL 模式进行连接,只需指定它,如以下命令所示:

psql -U user -h host "dbname=db sslmode=require"

2) 切换连接到新数据库

连接到数据库后,您可以将连接切换到指定user用户下的新数据库。之前的连接将被关闭。如果省略user参数,则假定为当前的用户。

\c dbname username

以下命令以postgres用户连接到dvdrental数据库:

postgres=# \c dvdrental
You are now connected to database "dvdrental" as user "postgres".
dvdrental=#

3) 列出可用的数据库

要在当前 PostgreSQL 数据库服务器中列出所有数据库,可以使用\l命令:

\l

4) 列出可用的表

要在当前数据库中列出所有表,可以使用\dt命令:

\dt

请注意,此命令只显示当前连接的数据库中的所有表。

5) 描述一个表

描述一个表,例如列、类型、列修饰符等,可以使用以下命令:

\d table_name

6) 列出可用模式

要列出当前连接的数据库中的所有模式,请使用\dn命令。

\dn

7) 列出可用函数

要列出当前数据库中的可用函数,请使用\df命令。

\df

8) 列出可用视图

要列出当前数据库中的可用视图,请使用\dv命令。

\dv

9) 列出用户及其角色

要列出所有用户及其分配的角色,请使用\du命令:

\du

10) 执行上一条命令

要检索 PostgreSQL 服务器的当前版本,请使用如下的version()函数:

SELECT version();

现在,您想节省再次键入上一个命令的时间,可以使用\g命令来执行上一个命令:

\g

psql 再次执行前面的命令,即前面的 SELECT 语句

11) 命令历史

要显示执行过的命令历史记录,请使用该\s命令。

\s

如果要将命令历史记录保存到文件中,则需要在\s命令后面指定文件名,如下所示:

\s filename

12) 从文件执行 psql 命令

如果您想从文件执行 psql 命令,请使用如下的\i命令:

\i filename

13) 获取有关 psql 命令的帮助

要了解所有可用的 psql 命令,请使用\?命令。

\?

要获取有关特定 PostgreSQL 语句的帮助,请使用\h命令。

例如,如果您想了解 ALTER TABLE 语句的详细信息,可以使用以下命令:

\h ALTER TABLE

14) 打开查询执行时间

要打开查询执行时间,请使用\timing命令。

dvdrental=# \timing
Timing is on.
dvdrental=# select count(*) from film;
 count
-------
  1000
(1 row)

Time: 1.495 ms
dvdrental=#

您可以使用相同的\timing命令将其关闭。

dvdrental=# \timing
Timing is off.
dvdrental=#

15) 在您自己的编辑器中编辑命令

如果您可以在您喜欢的编辑器中键入命令,这将非常方便。要在 psql 中执行此操作,请执行\e命令。发出命令后,psql 将打开由 EDITOR 环境变量定义的文本编辑器,并将您在 psql 中输入的最新命令放入编辑器中。

psql commands

在编辑器中键入命令,并保存和关闭编辑器后,psql 将执行该命令并返回结果。

psql command example

当您在编辑器中编辑一个函数时,它会更有用。

\ef [function name]

psql commadn ef edit function

16) 切换输出选项

psql 支持某些类型的输出格式,并允许您动态地配置输出的格式。

  • \a命令从对齐列输出切换到非对齐列输出。
  • \H命令将输出格式化为 HTML 格式。

17) 退出 psql

要退出 psql,您可以使用\q命令并按enter退出 psql。

\q

在本教程中,您学习了如何使用 psql 命令在 PostgreSQL 中执行各种常用任务。