写点什么

PostgreSQL:psql 介绍

  • 2023-03-20
    北京
  • 本文字数:3399 字

    阅读完需:约 11 分钟

本文分享自天翼云开发者社区《PostgreSQL:psql 介绍》,作者: 周****平


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, --密码强制密码提示(应该自动发生)

示例

登录数据库



 

元命令

在 psql 中输入的以反斜杠开头的内容都是 psql 元命令,也叫做反斜杠命令。元命令由 psql 自身进行处理。

元命令格式为反斜杠后跟参数,如\copy 命令即为元命令,语法格式为


 

元命令和选项之间可以有一个或者多个空格隔开,如果可选参数中包含了空格,可以用单引号将其引起来,如果是转义字符如:\ 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 提示用户设置内部变量

\未设置名称 未设置(删除)内部变量

 

大对象

\lo_export 小叶文件

\lo_import 文件 [注释]

\lo_list

\lo_unlink LOBOID 大型对象操作

 

来自“ ITPUB 博客 ” ,链接:http://blog.itpub.net/31490526/viewspace-2711967/,如需转载,请注明出处,否则将追究法律责任。

 

用户头像

还未添加个人签名 2022-02-22 加入

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

评论

发布
暂无评论
PostgreSQL:psql 介绍_天翼云开发者社区_InfoQ写作社区