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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏