暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

《课程笔记 | PostgreSQL深入浅出》之PSQL管理工具-高级命令(四)

原创 布衣&凡尘 2022-09-03
2779

Psql 日常使用频率不高命令:

显示执行SQL语句的时间

\timing on
image.png

设置自动提交为 OFF

image.png

获取元数据对应的SQL代码

-E 获取元数据对应的SQL代码:
-E, --echo-hidden 显示内部命令产生的查询
image.png
image.png

指定客户端字符集

\encoding gbk
\encoding utf8

格式化输出命令"\pset"

\pset [ option [ value ] ]
根据命令后面的"option"与"value"的不同可以设置很多种不同的输出格式。

带有边框

\pset border 2
select * from t
image.png

不带任何边框的内容

\pset border 0
select * from t
image.png

备注:psql中默认输出是\pset border 1

\pset border 0:表示输出内容无边框
\pset border 1:表示输出内容只有内边框
\pset border 2:表示输出内容内外都有边框

image.png

分隔符

\pset format unaligned
select * from woo
默认分隔符是"|",可以使用"\pset filedsep" 来设置分隔符,如改成TAB分隔符:
image.png
\pset filedsep ‘\t’
select * from t
还可以将结果输出到一个文件中,使用"\o" :

\pset format unaligned
\t # 去掉表头信息
\o test.txt
image.png
“\x” 命令
使用 “\x” 可以把按行展示的数据变成按列展示,与MySQL中命令后面加 “\G” 类似

\x
select * from t
执行存储在外部文件中的SQL命令
命令 “\i <文件名>” 用于执行存储在文件中的SQL语句或命令

\x
\i test.sql
也可以在psql命令行中加 "-f " 来执行文件中的SQL
image.png
image.png

psql -x -f test.sql 执行脚本文件

其中命令行的 “-x” 等同psql交互式模式的 “\x”
image.png

\e 编辑模式

编辑命令 “-e” 可以用于编辑文件,也可以编辑已存在的函数或视图定义,输入 “-e” 后会调用一个编辑器,与vim一样,如果不带任何参数则生成一个临时文件,前面执行的最后一条命令会出现在临时文件中,当编辑完成后退出编辑器并回到psql中时会立即执行该命令

\e
“\e” 后面也可以指定一个文件名,但要求这个文件必须存在,否则会报错。
也可以用 “\ef” 来编辑一个函数的定义,如果 “\ef” 后面不跟任何参数,则会出现一个编辑函数的模板,如果后面跟一个函数名,则函数定义的内容会出现在编辑器中,保存退出后,再输入 “;” 就会执行所创建函数的SQL语句
同样如果输入 “\ev” 则是对视图进行编辑。

需要注意,退出编辑器后,要输入 “\reset” 来清除psql的命令缓冲区,防止误执行创建的函数与视图

\e,回车,进入编辑
输入:select * from test;
image.png
退出编辑,显示select 的执行结果。
\ef: 编辑一个函数。
\ev: 编辑一个视图。
\ef 与\ev 配合\reset实现查看函数/视图。

\echo hello world
通常可以写在sql脚本里面

cat 1.sql
\echo ==========
select * from woo
\echo ==========
image.png
psql -E postgres
这样连接上数据库之后执行"\d"这些命令都会打印出实际的SQL语句
image.png
#设置终端显示格式:
备注,终端格式提示符:

%/ 当前数据库名称
%R 显示 = 
%#  超级用户显示 >  普通用户显示 #
%M 数据库服务器别名
%> 数据库端口号
%/@%M:%>%R%#

image.png
也可以将PROMPT1 的设置写进 .psqlrc文件,默认在pg的家目录中创建 .psqlrc文件即可,连接数据库库时自动读 .psqlrc文件

\set PROMPT1 ‘%/@%M:%>%R%#’

image.png
psql在连接数据库之前,首先会读取并执行改文件中的命令,然后连接到数据库;如果加上-X参数,则跳过该文件。
所以通过该文件可以设置客户端或者是服务端的风格。
image.png
用户个人使用的文件名是.psqlrc,可以用过环境变量PSQLRC配置。一般在用户home目录下,如~/.psqlrc。

生产报表:
psql -U postgres -d woo -c “select * from woo ;” -H -o woo.html

-o, --output=FILENAME 将查询结果写入文件(或 |管道)
-H, --html HTML 表格输出模式
image.png

备注:

输出格式选项 :
-A, --no-align 使用非对齐表格输出模式
–csv CSV(逗号分隔值)表输出模式
-F, --field-separator=STRING
为字段设置分隔符,用于不整齐的输出(默认:"|")
-H, --html HTML 表格输出模式
-P, --pset=变量[=参数] 设置将变量打印到参数的选项(查阅 \pset 命令)
-R, --record-separator=STRING
为不整齐的输出设置字录的分隔符(默认:换行符号)
-t, --tuples-only 只打印记录i
-T, --table-attr=文本 设定 HTML 表格标记属性(例如,宽度,边界)
-x, --expanded 打开扩展表格输出
-z, --field-separator-zero
为不整齐的输出设置字段分隔符为字节0
-0, --record-separator-zero
为不整齐的输出设置记录分隔符为字节0

                         文章推荐

PostgreSQL URL
《课程笔记:PostgreSQL深入浅出》之 初识PostgreSQL(一) https://www.modb.pro/db/475817
《课程笔记:PostgreSQL深入浅出》之 PostgreSQL源码安装(二) https://www.modb.pro/db/475933
《课程笔记:PostgreSQL深入浅出》之初始化PostgreSQL(三) https://www.modb.pro/db/479524
《课程笔记:PostgreSQL深入浅出》之PSQL管理工具-常用(四) https://www.modb.pro/db/479560
《课程笔记:PostgreSQL深入浅出》之PSQL管理工具-高级命令(四) https://www.modb.pro/db/479559
《课程笔记:PostgreSQL深入浅出》之内存与进程(五) https://www.modb.pro/db/489936
《课程笔记:PostgreSQL深入浅出》之外存&永久存储(六) https://www.modb.pro/db/502267
Oracle: URL
《Oracle 自动收集统计信息机制》 https://www.modb.pro/db/403670
《Oracle_索引重建—优化索引碎片》 https://www.modb.pro/db/399543
《DBA_TAB_MODIFICATIONS表的刷新策略测试》 https://www.modb.pro/db/414692
《FY_Recover_Data.dbf》 https://www.modb.pro/doc/74682
《Oracle RAC 集群迁移文件操作.pdf》 https://www.modb.pro/doc/72985
《Oracle Date 字段索引使用测试.dbf》 https://www.modb.pro/doc/72521
《Oracle 诊断案例 :因应用死循环导致的CPU过高》 https://www.modb.pro/db/483047
《Oracle 慢SQL监控脚本》 https://www.modb.pro/db/479620
《Oracle 慢SQL监控测试及监控脚本.pdf》 https://www.modb.pro/doc/76068
《Oracle 脚本实现简单的审计功能》 https://www.modb.pro/db/450052
Greenplum: URL
《PL/Java.pdf》 https://www.modb.pro/doc/70867
《GP的资源队列.pdf》 https://www.modb.pro/doc/67644
《Greenplum psql客户端免交互执行SQL.pdf》 https://www.modb.pro/doc/69806
                       欢迎赞赏支持或留言指正
最后修改时间:2022-09-27 21:29:56
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论