PostgreSQL 常用命令速查(psql / 库表 / 用户 / 备份)
2026-08-11 01:32:30 # 数据库

PostgreSQL(常称 Postgres)以功能强大、标准兼容著称。本文整理 PG 日常运维最高频命令,涵盖连接、对象管理、权限与备份。

一、连接与元命令(psql)

1
2
psql -h 127.0.0.1 -U postgres -d mydb   # 连接指定库
psql -c "SELECT version();" # 非交互执行

进入 psql 后的元命令(以 \ 开头):

1
2
3
4
5
6
7
8
\?            查看所有元命令帮助
\l 列出数据库
\c dbname 切换数据库
\dt 列出表
\d table 查看表结构
\dn 列出 schema
\du 列出角色(用户)
\i file.sql 执行 SQL 文件

二、库、表、模式

1
2
3
4
5
CREATE DATABASE mydb;
DROP DATABASE mydb; -- 需无人连接,危险
CREATE SCHEMA app;
CREATE TABLE app.users (id serial PRIMARY KEY, name text);
\copy app.users FROM 'users.csv' WITH CSV; -- 客户端导入

三、用户与权限

1
2
3
4
5
CREATE ROLE app LOGIN PASSWORD 'StrongPass!';
GRANT CONNECT ON DATABASE mydb TO app;
GRANT USAGE ON SCHEMA app TO app;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA app TO app;
ALTER ROLE app SET search_path = app;

四、导入导出

1
2
3
4
5
pg_dump -U postgres -d mydb -t app.users > users.sql     # 单表
pg_dump -U postgres -Fc mydb > mydb.dump # 自定义格式(压缩)
pg_dumpall -U postgres > cluster.sql # 整实例(含角色)
psql -U postgres -d mydb -f users.sql # 恢复
pg_restore -U postgres -d mydb mydb.dump # 恢复自定义格式

五、状态与排查

1
2
3
SELECT * FROM pg_stat_activity WHERE state <> 'idle';   -- 当前活跃会话
SELECT version();
SHOW max_connections;

小结

psql 的 \ 元命令是 PG 运维的瑞士军刀;权限是“库 CONNECT + schema USAGE + 表 GRANT”三层叠加,比 MySQL 更显式。