一、内部使用命令(进入后使用)
一般性
\copyright 显示PostgreSQL的使用和发行许可条款
\g [FILE] or; 执行查询 (并把结果写入文件或管道)
\gset [PREFIX] 执行查询并把结果存到psql变量中
\h [NAME] SQL命令语法上的说明,用*显示全部命令的语法说明
\q 退出 psql
\watch [SEC] 每隔SEC秒执行一次查询
查询缓存区
\e [FILE] [LINE] 使用外部编辑器编辑查询缓存区(或文件)
\ef [FUNCNAME [LINE]] 使用外部编辑器编辑函数定义
\p 显示查询缓存区的内容
\r 重置(清除)查询缓存区
\s [FILE] 显示历史记录或将历史记录保存在文件中
\w FILE 将查询缓存区的内容写入文件
输入/输出
\copy ... 执行 SQL COPY,将数据流发送到客户端主机
\echo [STRING] 将字符串写到标准输出
\i FILE 从文件中执行命令
\ir FILE 与 \i类似, 但是相对于当前脚本的位置
\o [FILE] 将全部查询结果写入文件或 |管道
\qecho [STRING] 将字符串写到查询输出串流(参考 \o)
资讯性
(选项: S = 显示系统对象, + = 其余的详细信息)
\d[S+] 列出表,视图和序列
\d[S+] NAME 描述表,视图,序列,或索引
\da[S] [PATTERN] 列出聚合函数
\db[+] [PATTERN] 列出表空间
\dc[S+] [PATTERN] 列表转换
\dC[+] [PATTERN] 列出类型强制转换
\dd[S] [PATTERN] 显示没有在别处显示的对象描述
\ddp [PATTERN] 列出缺省权限
\dD[S+] [PATTERN] 列出共同值域
\det[+] [PATTERN] 列出引用表
\des[+] [PATTERN] 列出外部服务器
\deu[+] [PATTERN] 列出用户映射
\dew[+] [PATTERN] 列出外部数据封装器
\df[antw][S+][PATTERN] 列出[只包括 聚合/常规/触发器/窗口]函数
\dF[+] [PATTERN] 列出文本搜索配置
\dFd[+] [PATTERN] 列出文本搜寻字典
\dFp[+] [PATTERN] 列出文本搜索解析器
\dFt[+] [PATTERN] 列出文本搜索模版
\dg[+] [PATTERN] 列出角色
\di[S+] [PATTERN] 列出索引
\dl 列出大对象, 功能与\lo_list相同
\dL[S+] [PATTERN] 列出所有过程语言
\dm[S+] [PATTERN] 列出所有物化视图
\dn[S+] [PATTERN] 列出所有模式
\do[S] [PATTERN] 列出运算符
\dO[S+] [PATTERN] 列出所有校对规则
\dp [PATTERN] 列出表,视图和序列的访问权限
\drds [PATRN1 [PATRN2]] 列出每个数据库的角色设置
\ds[S+] [PATTERN] 列出序列
\dt[S+] [PATTERN] 列出表
\dT[S+] [PATTERN] 列出数据类型
\du[+] [PATTERN] 列出角色
\dv[S+] [PATTERN] 列出视图
\dE[S+] [PATTERN] 列出引用表
\dx[+] [PATTERN] 列出扩展
\dy [PATTERN] 列出所有事件触发器
\l[+] [PATTERN] 列出所有数据库
\sf[+] FUNCNAME 显示函数定义
\z [PATTERN] 和\dp的功能相同
格式化
\a 在非对齐模式和对齐模式之间切换
\C [PATTERN] 设置表的标题,或如果没有的标题就取消
\f [PATTERN] 显示或设定非对齐模式查询输出的字段分隔符
\H 切换HTML输出模式 (目前是 关闭)
\pset NAME [VALUE] 设定表输出选项
(NAME := {format|border|expanded|fieldsep|fieldsep_zero|footer|null|
numericlocale|recordsep|recordsep_zero|tuples_only|title|tableattr|pager})
\t [on|off] 只显示记录 (目前是 关闭)
\T [STRING] 设置HTML <表格>标签属性, 或者如果没有的话取消设置
\x [on|off|auto] 切换扩展输出模式(目前是 关闭)
连接
\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo} 连接到新的数据库
\encoding [ENCODING] 显示或设定客户端编码
\password [USERNAME] 安全地为用户改变口令
\conninfo 显示当前连接的相关信息
操作系统
\cd [DIR] 改变目前的工作目录
\setenv NAME [VALUE] 设置或清空环境变量
\timing [on|off] 切换命令计时开关 (目前是 关闭)
\! [on|off] 在shell中执行命令或启动一个交互式shell
变量
\prompt [TEXT] NAME 提示用户设定内部变量
\set [TEXT] NAME 设定内部变量,若无参数则列出全部变量
\unset NAME 清空(删除)内部变量
大对象
\lo_export LOBOID 文件
\lo_import 文件 [注释]
\lo_list
\lo_unlink LOBOID 大对象运算
二、外部使用命令(Bash下使用)
使用方法:
psql [OPTION]... [DBNAME [USERNAME]]
通用选项:
-c, --command=COMMAND 执行一条命令 (SQL命令或内部命令) 并退出
-d, --dbname=DBNAME 要连接的数据库名称 (默认: "postgres")
-f, --file=FILENAME 从文件中执行命令并退出
-l, --list 罗列可用的数据库并退出
-v, --set=, --variable=NAME=VALUE
设置psql变量NAME为VALUE
-V, --version 输出版本信息并退出
-X, --no-psqlrc 不读取启动文件(~/.psqlrc)
-1 ("one"), --single-transaction
以单个事务执行 (假设是非交互式的)
-?, --help 显示帮助信息并退出
输入和输出选项:
-a, --echo-all 从脚本中打印所有输入
-e, --echo-queries 打印发送给服务器的命令
-E, --echo-hidden 显示所有内部命令产生的查询
-L, --log-file=FILENAME 发送session log到文件
-n, --no-readline 不启用加强版的命令行编辑模式 (按行读取)
-o, --output=FILENAME 发送查询结果到文件(或管道)
-q, --quiet 安静运行 (只有查询的输出,没有其他信息)
-s, --single-step 单步执行模式 (确认每一个查询)
-S, --single-line 单行执行模式 (每一行就是一条SQL命令)
输出格式选项:
-A, --no-align 非对齐表格输出模式
-F, --field-separator=STRING
设置值分隔符 (默认: "|")
-H, --html HTML表格输出模式
-P, --pset=VAR[=ARG] 将打印格式从VAR变为ARG (查看 \pset 命令)
-R, --record-separator=STRING
设置记录分隔符 (default: newline)
-t, --tuples-only 只打印行
-T, --table-attr=TEXT 设置HTML表格标签属性(例如width, border)
-x, --expanded 启用扩展的表格输出
-z, --field-separator-zero
将值分隔符设置为0字节
-0, --record-separator-zero
记录分隔符设置为0字节
Connection options:
-h, --host=HOSTNAME 数据库的host或socket的目录(默认:"/var/run/postgresql")
-p, --port=PORT 数据库服务器端口 (默认: "5432")
-U, --username=USERNAME 数据库登陆用户名(默认: "postgres")
-w, --no-password 不使用密码提示
-W, --password 强制密码提示 (应该自动显现)
在psql内部输入 "\?" (用于内部命令) or "\help" (用于SQL命令) , 或查找PostgreSQL文档的psql区域获取更多信息