searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享

PostgreSQL:psql 介绍

2022-06-28 08:40:40
238
0

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/,如需转载,请注明出处,否则将追究法律责任。

0条评论
0 / 1000
周****平
48文章数
3粉丝数
周****平
48 文章 | 3 粉丝
周****平
48文章数
3粉丝数
周****平
48 文章 | 3 粉丝

PostgreSQL:psql 介绍

2022-06-28 08:40:40
238
0

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/,如需转载,请注明出处,否则将追究法律责任。

文章来自个人专栏
云知识的搬运工
224 文章 | 7 订阅
0条评论
0 / 1000
请输入你的评论
0
0