PostgreSQL 常用命令行元命令汇总
PostgreSQL 的 psql 命令行工具提供了大量元命令(以反斜杠 \ 开头的命令),用于管理数据库、查询元数据和调整输出格式等。以下分类总结常用命令:
信息查询与元数据
-
\l或\list列出所有数据库,包含名称、所有者、编码和访问权限。
-
\d显示当前数据库中的表、视图、序列等对象列表。
\d+显示更详细的描述信息。 -
\d table_name查看指定表的结构(列名、类型、约束等)。
\d+ table_name包含额外信息如存储参数和注释。 -
\dn列出所有模式(schema)。
-
\df列出函数。可搭配
\df+ function_name查看函数定义。 -
\du或\dg列出角色和用户权限。
格式控制
-
\x或\expanded切换输出格式为垂直展开模式(适合宽表数据),再次执行切回水平模式。
-
\pset format unaligned设置输出为无对齐格式(适合导出数据到文件)。
-
\pset border 0|1|2控制表格边框显示(0无边框,1内部分隔线,2完整边框)。
-
\H或\html切换输出为 HTML 格式。
性能与统计
-
\timing切换 SQL 执行时间显示,开启后会显示每条语句的执行耗时。
-
\watch [interval]重复执行当前查询(如
**\watch 5每 5 秒执行一次**)。
连接与操作
-
\c dbname或\connect dbname切换到指定数据库。
-
\q退出
psql会话。 -
\! command在 shell 中执行外部命令(如
\! ls列出当前目录)。
文件操作
-
\i filename执行指定 SQL 文件中的命令。
-
\o filename将后续查询结果重定向到文件,
\o取消重定向。
其他实用命令
-
\e打开默认编辑器编辑当前查询缓冲区,保存后执行。
-
\cd directory更改当前工作目录。
-
\prompt [text] variable提示用户输入并保存到变量(如
\prompt 'Enter name:' name)。 -
\set [name [value]]设置或显示变量(如
\set AUTOCOMMIT off)。
示例组合用法
-
查看表结构并统计查询时间:
sql\timing \d users -
导出查询结果到文件:
sql\o output.csv SELECT * FROM orders; \o -
监控动态数据:
sqlSELECT COUNT(*) FROM logs WHERE created_at > NOW() - INTERVAL '1 hour'; \watch 60
这些命令能显著提升 PostgreSQL 命令行操作效率,建议结合 \? 查看完整帮助文档。