psql

psql 是一个瀚高数据库的基于终端的前端,能交互式地键入查询,查看查询结果。psql 提供了一些元命令和多种类似 shell 的特性来为编写脚本和自动化多种任务提供便利。

可以在进入数据库之前使用 psql --help 来查看 psql 的通用选项,例如在登录数据库时输入的 -u 表示用户名,-d 表示数据库名称。

登录数据库后,输入到 psql 中的任何以未加引用的反斜线开始的东西都是一个 psql 元命令,这些命令让 psql 对管理和编写脚本更有用。

下面简单介绍几个可以快速查看数据库信息的元命令:

  1. 查看关联列表:\d
  2. 查看数据库角色列表:\du or \dg
  3. 查看表、索引、视图等对象的关联列表:\dt(表),\di(索引),\dv(视图)…
  4. 查看 pattern 的列、类型、表空间等信息:\d [pattern]。pattern 包括表、视图、索引、分区等,输入对应的名称即可,例如 \d cities 可以查看表 cities 的栏位、类型、索引、约束等信息。
  5. 列出用户创建的数据类型:\dT
  6. SQL命令语法上的说明:\h ,用*显示全部命令的语法说明。
  7. 列出所有可用的数据库:\l
  8. 退出psql程序:\q
  9. 获取帮助:?

psql元命令

命令 参数 描述
\a 如果当前的表输出格式是非对齐的,则切换成对齐格式。如果不是非对齐格式,则设置成非对齐格式。
\c [ dbname [ username ] [ host ] [ port ] ] 切换数据库或者用户
\cd [ directory ] 把当前工作目录改为directory。如果不带参数,则切换到当前用户的主目录。要打印当前的工作目录,可以使用! pwd。
\conninfo 输出有关当前数据库连接的信息。
\copy 拷贝文件
\crosstabview [ colV [ colH [ colD [ sortcolH ] ] ] ] 查询缓存区
\d[S+] [ pattern ] 匹配关系
\da [ pattern ] 列出聚集函数
\dA 列出访问方法
\db 列出表空间
\dc 列出字符编码之间的转换
\dC 列出类型转换
\dd 显示约束,操作符类等对象的描述
\dD 列出域
\ddp 列出默认的访问特权设置
\dE 外部表
\di 索引
\dm 物化视图
\ds 序列
\dt
\dv 视图
\des 外部服务器
\det 外部表
\deu 用户映射
\dew 外部数据包装器
\df 列出函数
\dF 文本搜索配置
\dFd 列出搜索字典
\dFp 列出文本搜索解析器
\dft 列出文本搜索模板
\dg 列出数据库角色
\dn 列出模式
\do 列出操作符及其操作数和结果类型
\d0 列出排序规则
\dp 列出表,视图和序列
\drds 列出已定义的配置
\dRp 列出复制发布
\dRs 列出复制订阅
\dT 列出数据类型
\du 列出数据库角色
\dx 列出已安装拓展
\dy 列出事件触发器
\e [ filename ] [ line_number ] 编辑文件
\echo 把参数打印到标准输出
\ef 编辑函数
\encoding [ encoding ] 设置或显示客户端字符集编码
\errverbose 重复服务器错误消息
\ev [ view_name [ line_number ] ] 编辑函数定义
\f [ string ] 设置非对齐查询输出的域分隔符
\g [ |command ] 将查询缓冲区发送到服务器执行
\gexec
\gset [ prefix ]
\gx [ |command ] 等价\g
\h 帮助
\H HTML查询输出格式
\i 将文本做为键入命令执行
\l 列出服务器中的数据库
\o [ filename ] 将查询结果保存到文件
\o [ |command ] 将查询结果保存到管道
\p 将查询缓冲区打印到标准输出
\password [ username ] 更改该指定用户密码
\q 退出
\r 重置缓存区
\s 打印psql命令行历史到filename
\set [ name [ value [ … ] ] ] 设置name为value
\timing [ on\ off ]
\unset name 删除
\w [filename command] 将当前查询缓冲区写入文件或者管道
\watch [ seconds ] 反复执行当前查询缓冲区
\z [ pattern ] 列出表,序列,视图以及他们的访问特权
! 转到shell,当shell退出psql会恢复
? 帮助信息