Psql 日常使用频率不高命令:
显示执行SQL语句的时间
\timing on

设置自动提交为 OFF

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


指定客户端字符集
\encoding gbk
\encoding utf8
格式化输出命令"\pset"
\pset [ option [ value ] ]
根据命令后面的"option"与"value"的不同可以设置很多种不同的输出格式。
带有边框
\pset border 2
select * from t

不带任何边框的内容
\pset border 0
select * from t

备注:psql中默认输出是\pset border 1
\pset border 0:表示输出内容无边框
\pset border 1:表示输出内容只有内边框
\pset border 2:表示输出内容内外都有边框

分隔符
\pset format unaligned
select * from woo
默认分隔符是"|",可以使用"\pset filedsep" 来设置分隔符,如改成TAB分隔符:

\pset filedsep ‘\t’
select * from t
还可以将结果输出到一个文件中,使用"\o" :
\pset format unaligned
\t # 去掉表头信息
\o test.txt

“\x” 命令
使用 “\x” 可以把按行展示的数据变成按列展示,与MySQL中命令后面加 “\G” 类似
\x
select * from t
执行存储在外部文件中的SQL命令
命令 “\i <文件名>” 用于执行存储在文件中的SQL语句或命令
\x
\i test.sql
也可以在psql命令行中加 "-f " 来执行文件中的SQL


psql -x -f test.sql 执行脚本文件
其中命令行的 “-x” 等同psql交互式模式的 “\x”

\e 编辑模式
编辑命令 “-e” 可以用于编辑文件,也可以编辑已存在的函数或视图定义,输入 “-e” 后会调用一个编辑器,与vim一样,如果不带任何参数则生成一个临时文件,前面执行的最后一条命令会出现在临时文件中,当编辑完成后退出编辑器并回到psql中时会立即执行该命令
\e
“\e” 后面也可以指定一个文件名,但要求这个文件必须存在,否则会报错。
也可以用 “\ef” 来编辑一个函数的定义,如果 “\ef” 后面不跟任何参数,则会出现一个编辑函数的模板,如果后面跟一个函数名,则函数定义的内容会出现在编辑器中,保存退出后,再输入 “;” 就会执行所创建函数的SQL语句
同样如果输入 “\ev” 则是对视图进行编辑。
需要注意,退出编辑器后,要输入 “\reset” 来清除psql的命令缓冲区,防止误执行创建的函数与视图
\e,回车,进入编辑
输入:select * from test;

退出编辑,显示select 的执行结果。
\ef: 编辑一个函数。
\ev: 编辑一个视图。
\ef 与\ev 配合\reset实现查看函数/视图。
\echo hello world
通常可以写在sql脚本里面
cat 1.sql
\echo ==========
select * from woo
\echo ==========

psql -E postgres
这样连接上数据库之后执行"\d"这些命令都会打印出实际的SQL语句

#设置终端显示格式:
备注,终端格式提示符:
%/ 当前数据库名称
%R 显示 =
%# 超级用户显示 > 普通用户显示 #
%M 数据库服务器别名
%> 数据库端口号
%/@%M:%>%R%#

也可以将PROMPT1 的设置写进 .psqlrc文件,默认在pg的家目录中创建 .psqlrc文件即可,连接数据库库时自动读 .psqlrc文件
\set PROMPT1 ‘%/@%M:%>%R%#’

psql在连接数据库之前,首先会读取并执行改文件中的命令,然后连接到数据库;如果加上-X参数,则跳过该文件。
所以通过该文件可以设置客户端或者是服务端的风格。

用户个人使用的文件名是.psqlrc,可以用过环境变量PSQLRC配置。一般在用户home目录下,如~/.psqlrc。
生产报表:
psql -U postgres -d woo -c “select * from woo ;” -H -o woo.html
-o, --output=FILENAME 将查询结果写入文件(或 |管道)
-H, --html HTML 表格输出模式

备注:
输出格式选项 :
-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 |




