天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
分类: 数据库开发技术
2023-03-16 17:21:39
本文分享自天翼云开发者社区《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 以{BANNED}{BANNED}最佳佳大详细程度显示{BANNED}{BANNED}最佳佳新的错误消息
\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 当前条件块中的{BANNED}{BANNED}最佳佳终替代项
\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标记属性,如果没有,则取消设置
\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/,如需转载,请注明出处,否则将追究法律责任。