管理PostgreSQL数据库服务器时,您可能要执行的最常见任务之一就是列出数据库及其表。
本教程介绍如何使用psql
在PostgreSQL服务器中显示数据库和表。包括使用元命令\l
列出数据库的名称,所有者,编码和访问权限信息,使用\dt
元命令列出指定数据库表的信息。
PostgreSQL带有一个称为psql
的交互式工具,它使您可以连接到服务器并对其进行查询。
使用psql
时,您还可以利用PostgreSQL元命令。这些命令对于脚本和命令行管理很有用。所有PostgreSQL元命令都以无引号的反斜杠开头,也称为反斜杠命令。
查询数据库
您可以使用psql
命令以任何系统用户连接到PostgreSQL服务器。根据服务器配置,用户可能需要输入密码才能连接到psql终端。
要以您当前登录的用户访问psql连接到PostgreSQL,只需在终端中键入psql
并回车。
在安装时PostgreSQL会自动创建一个名为postgres的管理用户。默认情况下,postgres用户无需密码即可连接到本地PostgreSQL服务器。
sudo -u postgres psql
命令将会以postgres用户连接到本地PostgreSQL服务器。sudo
命令允许您以其他用户运行命令。
当使用psql
连接PostgreSQL后,你直接运行元命令\l
或\list
列出所有数据库。
\l
输出将包括数据库数量,每个数据库的名称,其所有者,编码和访问权限。
PostgreSQL服务器默认情况下创建了三个数据库,即template0,template1和postgres。前两个是创建新数据库时使用的模板。
如果要获取数据库大小的信息,请使用\l+
或\list+
作为默认表空间和描述。仅当当前用户可以连接时,才会显示数据库大小。
如果你要获取所有数据库的列表而不访问psql会话,请使用-c
选项运行元命令\l
。sudo -u postgres psql -c "\l"
。
列出数据库的另一种方法是使用PostgreSQL的SQL语句SELECT datname FROM pg_database;
。与\l
元命令不同,SQL语句查询将仅显示数据库名称。
查询table
要列出指定数据库的所有表,您需要使用\c
或\connect
元命令连接到指定的数据库。您已登录psql终端的用户必须能够连接到数据库。
例如,要连接到名为odoo的数据库,您可以运行元命令\c odoo
。切换数据库后,使用\dt
元命令列出所有数据库表。
输出将包括表的数量,每个表的名称及其模式,类型和所有者。如果数据库为空,则输出将提示No relations found.
。要获取表大小的信息,请使用\dt+
。
结论
您已经学习了如何使用psql
命令列出PostgreSQL数据库和表。如有任何疑问,请随时发表评论。