psql 命令是与 PostgreSQL 服务器交互的客户端程序,要登录到数据库服务器,需要使用psql 客户端工具或者第三方客户端工具如PostgreSQL for Navicat,pgAdmin,Visualizer 等等。psql 作为 DBA 通常使用的与 PostgreSQL 交互的客户端终端程序,因此,熟悉这个命令的用法可以帮助 DBA 快速的操作和维护数据库。
语法
-
psql 的默认语法
psql [OPTION]...[数据库名称 [用户名]]
-
说明
在 shell 命令行输入 psql,会直接进入数据库,此时的数据库默认用户名是 postgres,默认的数据库是 postgres。
-
连接选项:
-
-c, --command=COMMAND:执行单行命令。
-
-d, --dbname=DBNAME:数据库名称(默认:“postgres”)
-
-f, --file=FILENAME:从外部调用脚本文件
-
-l, --list:列出可用的数据库后退出。
-
-v, --set=, --variable=NAME=VALUE:set psql 变量 NAME to VALUE(例如,-v >
-
-V, --版本输出版本信息,然后退出
-
-X, --no-psqlrc 不读取启动文件 (~/.psqlrc)
-
-1 (“one”), --single-transaction:作为单个事务执行(如果是非交互式的)
-
输入输出选项:
-
-a, --echo-all:将脚本中的所有输入都输出,包含 SQL 命令,存储过程和默认的 psqlrc 文件中的命令。
-
-b, --回声错误回显失败命令
-
-e, --echo-queries echo 命令发送到服务器
-
-E, --echo-hidden:可以获取元命令的SQL代码
-
-L, --log-file=FILENAME:发送会话日志到指定的文件。
-
-n, --无读线禁用增强的命令行编辑(读线)
-
-o, --output=FILENAME:和-L不同的是,该参数仅仅将当前登录用户的执行操作结果保存到指定的文件,并且不会显示输出到屏幕。
-
-q, --quiet:以静默方式运行,没有额外信息显示,只输出查询结果,一般结合 Aqt 一起使用。
-
-s, --单步单步模式(确认每个查询)
-
-S, --single-line:: 单行模式,SQL 语句只能写在一行,而不能换行,不加该参数,SQL 语句可换行。
-
输出格式选项
-
-A, --no-align:不对齐输出。
-
--csv:以逗号分隔的表输出模式。
-
-F, --field-separator=STRING:域分隔符(默认:|)。
-
-H, --html:以HTML表格输出查询结果。
-
-P, --pset=VAR[=ARG] 将打印选项 VAR 设置为 ARG(请参见 \pset 命令)
-
-R, --record-separator=STRING record separator for unigned output(默认值:换行符)
-
-t, --tuples-only:仅输出结果行。
-
-T, --table-attr=TEXT 设置 HTML 表标签属性(例如,宽度、边框)
-
-x, --扩展打开扩展表输出
-
-z, --字段分隔符-零设置字段分隔符,用于将未对齐的输出设置为零字节
-
-0, --记录分隔符 --零设置记录分隔符,用于将未对齐的输出转换为零字节
-
链接选项
-
-h, --host=HOSTNAME:远程数据库服务器主机 ip 或 Unix 套接字目录(默认:“local socket”)
-
-p, --port=PORT:数据库运行监听端口(默认: “5432”)
-
-U, --username=USERNAME:数据库用户名(默认: “postgres”)
-
-w, --no-password:禁用密码提示
-
-W, --密码强制密码提示(应该自动发生)
示例
登录数据库
1
|
psql <库名> <用户名> |
1
2
3
4
|
node1-@[postgres]: /data/pg_data >psql postgres postgres psql (12.4) Type "help" for help. postgres= # |
元命令
在psql 中输入的以反斜杠开头的内容都是psql元命令,也叫做反斜杠命令。元命令由psql自身进行处理。
元命令格式为反斜杠后跟参数,如\copy 命令即为元命令,语法格式为
1
|
\ command [options] |
元命令和选项之间可以有一个或者多个空格隔开,如果可选参数中包含了空格,可以用单引号将其引起来,如果是转义字符如: \ n(换行),\ t(制表符),\ b(退格键),\ r(回车),\ f(换页),\ digits(八进制)和\ xdigits(十六进制)都可以使用单引号引起来。
部分元命令以SQL标识符(如表名,函数,序列等)作为参数,这些参数需遵循SQL语法规则:不带引号的字母将被强制小写,双引号之间的字母不进行大小写转换,并允许在标识符中包含空格。在双引号中,成对的双引号会当成单引号使用。
psql 提供了丰富的元命令,如查看数据库对象定义,数据库对象空间大小,导入导出等元命令,以便于DBA或者开发人员能够方便的管理和维护数据库。
通用
-
\版权显示 PostgreSQL 使用和分发条款
-
\交叉表视图 [列] 执行查询并在交叉表中显示结果
-
\errverbose 以最大详细程度显示最新的错误消息
-
\g [文件] 或 ;执行查询(并将结果发送到文件或|管道)
-
\gdesc 描述查询的结果,而不执行它
-
\gexec 执行查询,然后执行其结果中的每个值
-
\gset [PREFIX] 执行查询并将结果存储在 psql 变量中
-
\gx [FILE] 作为 \g,但强制扩展输出模式
-
\q quit psql
-
\watch [SEC] 每隔 SEC 秒执行一次查询
查询缓冲区
-
\ef [FUNCNAME [LINE]] 使用外部编辑器编辑函数定义
-
\ev [视图名称 [行]] 使用外部编辑器编辑视图定义
-
\p 显示查询缓冲区的内容
-
\r 重置(清除)查询缓冲区
-
\s [文件] 显示历史记录或将其保存到文件
-
\w 文件将查询缓冲区写入文件
输入/输出
-
\复制...使用数据流执行 SQL COPY 到客户端主机
-
\echo [字符串] 将字符串写入标准输出
-
\i 文件从文件执行命令
-
\ir FILE 作为 \i,但相对于当前脚本的位置
-
\o [文件] 将所有查询结果发送到文件或|管道
-
\qecho [STRING] 将字符串写入查询输出流(请参见 \o)
有條件的
-
\如果 EXPR 开始条件块
-
\elif EXPR 替代当前条件块中
-
\else 当前条件块中的最终替代项
-
\endif end conditional block
信息查看
-
\d[S+]:列出表、视图、序列、或索引
-
\d[S+] NAME 描述表、视图、序列或索引
-
\da[S] [模式] 列表聚合
-
\dA[+] [模式] 列表访问方法
-
\db[+] [PATTERN]:列出表空间信息
-
\dc[S+] [模式] 列表转换
-
\dC[+] [模式] 列表转换
-
\dd[S] [模式] 显示未在其他地方显示的对象描述
-
\dD[S+] [模式] 列表域
-
\ddp [模式] 列出默认权限
-
\dE[S+] [模式] 列出外来表
-
\det[+] [PATTERN] 列出外来表
-
\des[+] [PATTERN] 列出外部服务器
-
\deu[+] [PATTERN] 列表用户映射
-
\dew[+] [PATTERN] 列出外来数据包装器
-
\df[anptw][S+] [PATRN] 列表 [仅 agg/normal/procedures/trigger/window] 函数
-
\dF[+] [模式] 列出文本搜索配置
-
\dFd[+] [模式] 列表文本搜索词典
-
\dFp[+] [PATTERN] 列表文本搜索解析器
-
\dFt[+] [模式] 列表文本搜索模板
-
\dg[S+] [模式] 列表角色
-
\di[S+] [PATTERN]:查看索引占用空间大小
-
\dl 列出与 \lo_list 相同的大型对象
-
\dL[S+] [模式] 列出过程语言
-
\dm[S+] [模式] 列出实例化视图
-
\dn[S+] [模式] 列表架构
-
\do[S] [模式] 列表运算符
-
\dO[S+] [模式] 列表排序规则
-
\dp [PATTERN] 列出表、视图和序列访问权限
-
\dP[itn+] [PATTERN] 列表 [仅索引/表] 分区关系 [n=嵌套]
-
\drds [PATRN1 [PATRN2]] 列出每个数据库的角色设置
-
\dRp[+] [PATTERN] 列出复制发布
-
\dRs[+] [模式] 列出复制订阅
-
\ds[S+] [模式] 列表序列
-
\dt[S+] [PATTERN]:查看表占用空间大小
-
\dT[S+] [模式] 列出数据类型
-
\du[S+] [模式] 列表角色
-
\dv[S+] [模式] 列表视图
-
\dx[+] [模式] 列表扩展
-
\dy [模式] 列表事件触发器
-
\l[+] [模式] 列表数据库
-
\sf[+] FUNCNAME:查看函数定义信息
-
\sv[+] VIEWNAME:列出视图的定义信息
-
\z [模式] 与 \dp 相同
格式
-
\在未对齐和对齐输出模式之间切换
-
\C [字符串] 设置表标题,如果没有,则取消设置
-
\f [字符串] 显示或设置未对齐查询输出的字段分隔符
-
\H 切换 HTML 输出模式(当前关闭)
-
\pset [NAME [VALUE]] 设置表输出选项
(边框|列|csv_fieldsep|展开|字段|
fieldsep_zero|页脚|格式|线样式|空|
数字定位|页|pager_min_lines|记录|
recordsep_zero|tableattr|title|tuples_only|
unicode_border_linestyle|unicode_column_linestyle|
unicode_header_linestyle)
-
\t [开|关] 仅显示行(当前关闭)
-
\T [字符串] 设置 HTML <table> 标记属性,如果没有,则取消设置
-
\x [on|off|auto]:可设置查询结果输出模式 (默认:off)
链接
-
\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}:连接到本地或远程数据库服务器
-
\conninfo 显示有关当前连接的信息
-
\编码 [编码] 显示或设置客户端编码
-
\password [用户名] 安全地更改用户的密码
系统操作
-
\cd [目录] 更改当前工作目录
-
\setenv NAME [VALUE] 设置或取消设置环境变量
-
\timing [on|off] 切换命令的计时(当前关闭)
-
\![命令] 在 shell 中执行命令或启动交互式 shell
参数
-
\prompt [TEXT] NAME 提示用户设置内部变量
-
\set [NAME [VALUE]] 设置内部变量,如果没有参数,则列出所有变量
-
\未设置名称 未设置(删除)内部变量
大对象
-
\lo_export 小叶文件
-
\lo_import 文件 [注释]
-
\lo_list
-
\lo_unlink LOBOID 大型对象操作
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31490526/viewspace-2711967/,如需转载,请注明出处,否则将追究法律责任。