psql
psql 是一个瀚高数据库的基于终端的前端,能交互式地键入查询,查看查询结果。psql 提供了一些元命令和多种类似 shell 的特性来为编写脚本和自动化多种任务提供便利。
可以在进入数据库之前使用 psql --help
来查看 psql 的通用选项,例如在登录数据库时输入的 -u
表示用户名,-d
表示数据库名称。
登录数据库后,输入到 psql 中的任何以未加引用的反斜线开始的东西都是一个 psql 元命令,这些命令让 psql 对管理和编写脚本更有用。
下面简单介绍几个可以快速查看数据库信息的元命令:
- 查看关联列表:\d
- 查看数据库角色列表:\du or \dg
- 查看表、索引、视图等对象的关联列表:\dt(表),\di(索引),\dv(视图)…
- 查看 pattern 的列、类型、表空间等信息:\d [pattern]。pattern 包括表、视图、索引、分区等,输入对应的名称即可,例如 \d cities 可以查看表 cities 的栏位、类型、索引、约束等信息。
- 列出用户创建的数据类型:\dT
- SQL命令语法上的说明:\h ,用*显示全部命令的语法说明。
- 列出所有可用的数据库:\l
- 退出psql程序:\q
- 获取帮助:?
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会恢复 | |
? | 帮助信息 |