psql 是 PostgreSQL 的官方交互式终端客户端,主要用于从命令行连接数据库、执行 SQL 查询和编写自动化脚本。它采用 REPL(读取-求值-打印循环)模式,接受标准 SQL 语句和以反斜杠开头的元命令,并在会话内保持连接状态、命令历史与编辑能力。每个会话连接一个数据库,但可切换数据库而无需重新连接。
连接方式包括:psql -U username -h hostname -p 5432 -d database_name、连接字符串 psql postgresql://username:password@hostname:5432/database_name,或通过 PGUSER、PGPASSWORD、PGHOST、PGPORT、PGDATABASE 等环境变量。密码可使用 ~/.pgpass 文件(需 chmod 600)或 SSH 隧道。SSL 支持 disable、allow、prefer、require、verify-ca、verify-full 等模式。
主要能力包括:用 \l、\dt、\dn、\di、\dv 等元命令浏览数据库、模式、表和索引;用 \d 查看对象结构;用 \pset 控制输出格式(如 csv、html、expanded、边框、NULL 显示);用 \copy 在客户端导入导出数据;用 \i、\o、\e、\ef 管理脚本、输出与函数编辑;用 \set、\unset、\setenv 设置变量和环境变量;通过 ~/.psqlrc 配置启动选项、提示符和常用快捷查询。命令行选项如 -c、-f、-o、-t、-A、-x、-v 等可控制执行与输出。还支持事务控制(BEGIN、COMMIT、ROLLBACK、SAVEPOINT)以及 \begin、\commit 等元命令。
适用场景:交互式查询、SQL 脚本自动化、数据库与模式管理、对象维护、备份恢复、连接与认证配置、结果格式化导出、权限管理、查询调试、数据库管理任务自动化、复制与高可用配置、存储过程与函数创建等。
限制与注意事项:psql 是终端客户端,不提供图形界面;涉及备份恢复、复制、并行导出等操作时,部分能力依赖 pg_dump 等外部工具;具体版本支持的命令和选项可能不同,需以实际环境为准;认证配置错误或权限不足会导致连接失败,需检查 .pgpass 权限和 SSL 设置。资料未提供收费、价格及平台信息。