PostgreSQL常用命令行语句整理

一、数据库连接与退出

命令 说明 示例
psql -U <用户名> -d <数据库名> -h <主机> -p <端口> 连接到PostgreSQL数据库 psql -U postgres -d mydb -h localhost -p 5432
\c <数据库名> 切换数据库 \c testdb
\q 退出psql终端 \q
\conninfo 显示当前连接信息 \conninfo

二、数据库与表操作

命令 说明 示例
CREATE DATABASE <数据库名>; 创建数据库 CREATE DATABASE company;
DROP DATABASE <数据库名>; 删除数据库 DROP DATABASE company;
\l 列出所有数据库 \l
CREATE TABLE <表名> (<字段定义>); 创建表 CREATE TABLE employees (id SERIAL PRIMARY KEY, name VARCHAR(50));
DROP TABLE <表名>; 删除表 DROP TABLE employees;
\d <表名> 查看表结构 \d employees
\dt 列出当前数据库所有表 \dt

三、数据查询与操作

命令 说明 示例
SELECT <字段> FROM <表名>; 查询数据 SELECT * FROM employees;
INSERT INTO <表名> (<字段>) VALUES (<值>); 插入数据 INSERT INTO employees (name) VALUES ('John Doe');
UPDATE <表名> SET <字段>=<值> WHERE <条件>; 更新数据 UPDATE employees SET name='Jane Doe' WHERE id=1;
DELETE FROM <表名> WHERE <条件>; 删除数据 DELETE FROM employees WHERE id=1;
\x 切换扩展显示模式(适合查看宽表) \x

四、用户与权限管理

命令 说明 示例
CREATE USER <用户名> WITH PASSWORD '<密码>'; 创建用户 CREATE USER dev WITH PASSWORD 'dev123';
ALTER USER <用户名> WITH PASSWORD '<新密码>'; 修改用户密码 ALTER USER dev WITH PASSWORD 'newdev123';
GRANT <权限> ON <对象> TO <用户>; 授予权限 GRANT ALL PRIVILEGES ON DATABASE company TO dev;
REVOKE <权限> ON <对象> FROM <用户>; 撤销权限 REVOKE ALL PRIVILEGES ON DATABASE company FROM dev;
\du 列出所有用户 \du

五、备份与恢复

命令 说明 示例
pg_dump -U <用户名> <数据库名> > <备份文件.sql> 备份数据库 pg_dump -U postgres company > company_backup.sql
psql -U <用户名> -d <数据库名> < <备份文件.sql> 恢复数据库 psql -U postgres company < company_backup.sql
pg_dumpall -U <用户名> > <全量备份文件.sql> 备份所有数据库 pg_dumpall -U postgres > all_databases_backup.sql

六、其他常用命令

命令 说明 示例
\? 查看psql命令帮助 \?
\h <SQL命令> 查看SQL命令语法 \h SELECT
\timing 切换查询执行时间显示 \timing
\echo <文本> 显示文本信息 \echo 'Hello PostgreSQL'
VACUUM <表名> 清理表空间(释放删除数据占用的空间) VACUUM employees

注意事项

  1. 所有SQL命令需以分号;结束,psql元命令(以\开头)不需要分号
  2. 敏感操作(如删除数据库/表)前请确认数据备份
  3. 生产环境中应遵循最小权限原则管理用户权限
  4. 定期备份数据库是数据安全的重要保障