PG之psql特殊使用

我们使用psql,基本使用\d \dv \ds \l.....等命令查询,下面介绍常用的特例
[postgres@dba01 ~]$ psql -hlocalhost -p1921
psql (14.3)
Type "help" for help.
postgres=# \c mydb;
You are now connected to database "mydb" as user "postgres".

(1)设置客户端编码\encoding

mydb=# show client_encoding;
GBK
mydb=# \encoding UTF8;
mydb=# show client_encoding;
UTF8

(2)格式化输出\pset

\pset border 0:输出内容无边框

\pset border 1:输出内容只有内边框

\pset border 2:输出内容内外都有边框

pg默认为\pset border 1

postgres=# \c mydb;
You are now connected to database "mydb" as user "postgres".
mydb=# select * from product_sale_all;
year | product_product_name | product_category | sale_sum
---------------------------+----------------------+------------------+----------
2017 | iPhone | 手机 | 110000
2018 | iPhone | 手机 | 115000
2018 | HuaWei | 手机 | 138000
2019 | HuaWei | 手机 | 160000
2018 | Canon | 相机 | 100000
2019 | Canon | 相机 | 200000
2020 | Canon | 相机 | 180000
2017 | DELL | 笔记本电脑 | 155000
2018 | DELL | 笔记本电脑 | 130000
2019 | DELL | 笔记本电脑 | 155000
2020 | DELL | 笔记本电脑 | 140000
(11 rows)

mydb=# \t
Tuples only is on.
mydb=# select * from product_sale_all;
2017 | iPhone | 手机 | 110000
2018 | iPhone | 手机 | 115000
2018 | HuaWei | 手机 | 138000
2019 | HuaWei | 手机 | 160000
2018 | Canon | 相机 | 100000
2019 | Canon | 相机 | 200000
2020 | Canon | 相机 | 180000
2017 | DELL | 笔记本电脑 | 155000
2018 | DELL | 笔记本电脑 | 130000
2019 | DELL | 笔记本电脑 | 155000
2020 | DELL | 笔记本电脑 | 140000

mydb=# \pset border 0;
Border style is 0.
mydb=# select * from product_sale_all;
2017 iPhone 手机 110000
2018 iPhone 手机 115000
2018 HuaWei 手机 138000
2019 HuaWei 手机 160000
2018 Canon 相机 100000
2019 Canon 相机 200000
2020 Canon 相机 180000
2017 DELL 笔记本电脑 155000
2018 DELL 笔记本电脑 130000
2019 DELL 笔记本电脑 155000
2020 DELL 笔记本电脑 140000

mydb=# \pset border 1;
Border style is 1.
mydb=# select * from product_sale_all;
2017 | iPhone | 手机 | 110000
2018 | iPhone | 手机 | 115000
2018 | HuaWei | 手机 | 138000
2019 | HuaWei | 手机 | 160000
2018 | Canon | 相机 | 100000
2019 | Canon | 相机 | 200000
2020 | Canon | 相机 | 180000
2017 | DELL | 笔记本电脑 | 155000
2018 | DELL | 笔记本电脑 | 130000
2019 | DELL | 笔记本电脑 | 155000
2020 | DELL | 笔记本电脑 | 140000

mydb=# \pset border 2;
Border style is 2.
mydb=# select * from product_sale_all;
| 2017 | iPhone | 手机 | 110000 |
| 2018 | iPhone | 手机 | 115000 |
| 2018 | HuaWei | 手机 | 138000 |
| 2019 | HuaWei | 手机 | 160000 |
| 2018 | Canon | 相机 | 100000 |
| 2019 | Canon | 相机 | 200000 |
| 2020 | Canon | 相机 | 180000 |
| 2017 | DELL | 笔记本电脑 | 155000 |
| 2018 | DELL | 笔记本电脑 | 130000 |
| 2019 | DELL | 笔记本电脑 | 155000 |
| 2020 | DELL | 笔记本电脑 | 140000 |
+---------------------------+----------------------+------------------+----------+

 

(3)设置分隔符\pset fieldsep


mydb=# select * from product_sale_all;
year | product_product_name | product_category | sale_sum
---------------------------+----------------------+------------------+----------
2017 | iPhone | 手机 | 110000
2018 | iPhone | 手机 | 115000
2018 | HuaWei | 手机 | 138000
2019 | HuaWei | 手机 | 160000
2018 | Canon | 相机 | 100000
2019 | Canon | 相机 | 200000
2020 | Canon | 相机 | 180000
2017 | DELL | 笔记本电脑 | 155000
2018 | DELL | 笔记本电脑 | 130000
2019 | DELL | 笔记本电脑 | 155000
2020 | DELL | 笔记本电脑 | 140000
(11 rows)
mydb=# \pset fieldsep ','   
Field separator is ",".
mydb=# select * from product_sale_all;
year | product_product_name | product_category | sale_sum
---------------------------+----------------------+------------------+----------
2017 | iPhone | 手机 | 110000
2018 | iPhone | 手机 | 115000
2018 | HuaWei | 手机 | 138000
2019 | HuaWei | 手机 | 160000
2018 | Canon | 相机 | 100000
2019 | Canon | 相机 | 200000
2020 | Canon | 相机 | 180000
2017 | DELL | 笔记本电脑 | 155000
2018 | DELL | 笔记本电脑 | 130000
2019 | DELL | 笔记本电脑 | 155000
2020 | DELL | 笔记本电脑 | 140000
(11 rows)
mydb=# \t ##(不输出title)
Tuples only is on.
mydb=# select * from product_sale_all;
2017 | iPhone | 手机 | 110000
2018 | iPhone | 手机 | 115000
2018 | HuaWei | 手机 | 138000
2019 | HuaWei | 手机 | 160000
2018 | Canon | 相机 | 100000
2019 | Canon | 相机 | 200000
2020 | Canon | 相机 | 180000
2017 | DELL | 笔记本电脑 | 155000
2018 | DELL | 笔记本电脑 | 130000
2019 | DELL | 笔记本电脑 | 155000
2020 | DELL | 笔记本电脑 | 140000
mydb=# \pset format unligned
\pset: allowed formats are aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped
mydb=# \pset format unaligned  ##--使用\pset format unaligned命令,让输出不用对齐,此时查询出来的结果,就是使用逗号分隔的结果
Output format is unaligned.
mydb=# select * from product_sale_all;
2017 ,iPhone,手机,110000
2018 ,iPhone,手机,115000
2018 ,HuaWei,手机,138000
2019 ,HuaWei,手机,160000
2018 ,Canon,相机,100000
2019 ,Canon,相机,200000
2020 ,Canon,相机,180000
2017 ,DELL,笔记本电脑,155000
2018 ,DELL,笔记本电脑,130000
2019 ,DELL,笔记本电脑,155000
2020 ,DELL,笔记本电脑,140000

 

(4)将结果输出到文件\o

mydb=# \pset fieldsep ','
Field separator is ",".
mydb=# select * from product_sale_all;
2017 iPhone 手机 110000
2018 iPhone 手机 115000
2018 HuaWei 手机 138000
2019 HuaWei 手机 160000
2018 Canon 相机 100000
2019 Canon 相机 200000
2020 Canon 相机 180000
2017 DELL 笔记本电脑 155000
2018 DELL 笔记本电脑 130000
2019 DELL 笔记本电脑 155000
2020 DELL 笔记本电脑 140000

mydb=# select * from product_sale_all;
2017 iPhone 手机 110000
2018 iPhone 手机 115000
2018 HuaWei 手机 138000
2019 HuaWei 手机 160000
2018 Canon 相机 100000
2019 Canon 相机 200000
2020 Canon 相机 180000
2017 DELL 笔记本电脑 155000
2018 DELL 笔记本电脑 130000
2019 DELL 笔记本电脑 155000
2020 DELL 笔记本电脑 140000

mydb=# select * from product_sale_all;
2017 iPhone 手机 110000
2018 iPhone 手机 115000
2018 HuaWei 手机 138000
2019 HuaWei 手机 160000
2018 Canon 相机 100000
2019 Canon 相机 200000
2020 Canon 相机 180000
2017 DELL 笔记本电脑 155000
2018 DELL 笔记本电脑 130000
2019 DELL 笔记本电脑 155000
2020 DELL 笔记本电脑 140000

mydb=# \pset fieldsep ','
Field separator is ",".
mydb=# \pset format unaligned
Output format is unaligned.
mydb=# select * from product_sale_all;
2017 ,iPhone,手机,110000
2018 ,iPhone,手机,115000
2018 ,HuaWei,手机,138000
2019 ,HuaWei,手机,160000
2018 ,Canon,相机,100000
2019 ,Canon,相机,200000
2020 ,Canon,相机,180000
2017 ,DELL,笔记本电脑,155000
2018 ,DELL,笔记本电脑,130000
2019 ,DELL,笔记本电脑,155000
2020 ,DELL,笔记本电脑,140000
mydb=# select * from product_sale_all;
2017 ,iPhone,手机,110000
2018 ,iPhone,手机,115000
2018 ,HuaWei,手机,138000
2019 ,HuaWei,手机,160000
2018 ,Canon,相机,100000
2019 ,Canon,相机,200000
2020 ,Canon,相机,180000
2017 ,DELL,笔记本电脑,155000
2018 ,DELL,笔记本电脑,130000
2019 ,DELL,笔记本电脑,155000
2020 ,DELL,笔记本电脑,140000
mydb=# \o andyxi.txt
mydb=# select * from product_sale_all;
mydb=# \q
[postgres@dba01 ~]$ cat andyxi.txt
2017 ,iPhone,手机,110000
2018 ,iPhone,手机,115000
2018 ,HuaWei,手机,138000
2019 ,HuaWei,手机,160000
2018 ,Canon,相机,100000
2019 ,Canon,相机,200000
2020 ,Canon,相机,180000
2017 ,DELL,笔记本电脑,155000
2018 ,DELL,笔记本电脑,130000
2019 ,DELL,笔记本电脑,155000
2020 ,DELL,笔记本电脑,140000

 

posted @   青空如璃  阅读(579)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示