PostgreSQL psql 命令行工具使用详解
psql 是 PostgreSQL 的交互式终端工具,是与 PostgreSQL 数据库交互的主要命令行界面。以下是 psql 的详细使用指南:
基本连接与退出
连接数据库
psql -h 主机名 -p 端口 -U 用户名 -d 数据库名
例如:
psql -h localhost -p 5432 -U postgres -d mydb
退出 psql
\q
常用元命令
psql 提供了一系列以反斜杠()开头的元命令:
数据库信息
\l
或\list
- 列出所有数据库\c[onnect] [数据库名]
- 连接到另一个数据库\dt
- 列出当前数据库的所有表\d [表名]
- 显示表结构\du
- 列出所有用户和角色\dn
- 列出所有 schema
查询与执行
\e
- 在编辑器中打开并编辑当前查询缓冲区\ef [函数名]
- 编辑函数定义\i 文件名
- 从文件执行 SQL 命令\o [文件名]
- 将查询结果输出到文件\g
- 执行当前查询缓冲区中的命令\gexec
- 执行查询并将每行结果作为 SQL 执行
显示设置
\x
- 切换扩展显示模式(垂直显示结果)\timing
- 切换命令计时开关\pset [选项]
- 设置输出格式选项\pset format aligned
- 对齐格式(默认)\pset format unaligned
- 不对齐格式\pset border 2
- 设置边框样式
帮助信息
\?
- 显示所有 psql 命令帮助\h [命令]
- 显示 SQL 命令语法帮助
高级功能
变量与替换
\set [变量名] [值] -- 设置变量
\echo :变量名 -- 使用变量
事务控制
\set AUTOCOMMIT off
- 关闭自动提交BEGIN;
- 开始事务COMMIT;
- 提交事务ROLLBACK;
- 回滚事务
历史命令
- 使用上下箭头键浏览历史命令
\s
- 显示命令历史\s [文件名]
- 将历史保存到文件\r
- 重置查询缓冲区
配置与自定义
.psqlrc 文件
在用户主目录创建 .psqlrc
文件可以自定义 psql 启动行为:
-- 示例 .psqlrc 内容
\set PROMPT1 '%n@%/%R%# '
\set PROMPT2 '[more] %R> '
\timing on
\pset null '(null)'
命令行选项
常用选项:
-E
- 显示元命令生成的 SQL-f 文件名
- 执行文件中的 SQL 然后退出-v 变量=值
- 设置变量-A
- 非对齐输出模式-H
- HTML 输出模式
实用技巧
- 查看执行计划:
EXPLAIN ANALYZE SELECT * FROM users WHERE id = 1;
- 复制数据:
\copy (SELECT * FROM table) TO '/path/to/file.csv' WITH CSV HEADER
- 查看服务器版本:
SELECT version();
- 查看当前连接信息:
SELECT * FROM pg_stat_activity;
- 使用分页显示:
\pset pager always
psql 是一个功能强大的工具,熟练掌握它可以大大提高 PostgreSQL 数据库的管理效率。