版本說明:
PostgresQL 10.9
psql的名字從字面上看起來有點像plsql,注意千萬不要弄混。psql提供了豐富的元命令,以“\”開頭,使用元命令可以高效、便捷的對數據庫進行管理。psql命令的格式是用反斜線后面直接跟上一個命令動詞,然后是一些參數。
在使用前可以使用“\?”來獲取幫助信息,了解可以使用的命令清單。
$ psql psql (10.9) Type "help" for help. postgres=# \?
由於篇幅限制,輸出的內容不在這里描述,以下內容將介紹幾種常用的元命令。
1 查看當前數據庫的連接信息(\conninfo)
2 修改當前工作路徑(\cd [directory])
如果不帶參數,則切換到當前用戶的主目錄。\! pwd用來顯示當前工作路徑(嘆號后有空格)。
3 查看表、視圖和序列的訪問權限(\dp)
列出表、視圖和序列,包括與它們相關的訪問特權。
4 查看已定義的配置信息(\drds)
列出已定義的配置設置。這些設置可以是針對角色的、針對數據庫的或者同時針對兩者的。
5 查看數據庫角色信息(\du)
6 查看字符集編碼(\encoding)
7 查看最近發生的錯誤信息(\errverbose)
將以最詳細程度展示出最近的服務器錯誤消息。
8 顯示執行時間(\timing on | off)
9 轉義到shell(\! [command])
有參數時,執行shell命令;
無參數時,轉義到子shell;當子shell退出時,psql會恢復。
10 查看數據庫列表(\l)
\符號后面為小寫的“L”
11 查看表空間列表(\db)
postgres=# \db
12 查看表定義(\d table_name)
--創建測試表 $ psql mydb pguser mydb=> create table t1(id int4,name text,create_time timestamp without time zone default clock_timestamp()); CREATE TABLE mydb=> alter table t1 add primary key(id); ALTER TABLE
13 查看表占用空間大小(\dt+table_name)
--為測試表插入50萬條數據 $ psql mydb pguser mydb=> insert into t1(id,name) select n,n || '_tank' from generate_series(1,500000) n; INSERT 0 500000 mydb=> \dt+t1
14 查看索引占用空間大小(\di+table_name&index_name)
15 設置標題(\C title_name)
16 執行當前查詢緩沖區(\g)
如果當前查詢緩沖區為空,則最新發送的查詢將被重新執行。
17 將當前緩沖區打印到標准輸出(\p)
18 重置緩沖區(\r)
19 查看函數代碼(\sf function_name)
20 設置查詢結果輸出格式(\x)
21 獲取元命令的對應代碼(psql [-E])
使用psql連接時加上“-E”的選項,在執行元命令后就可以獲取對應的SQL代碼。
參考資料:
《PostgresSQL 10.9》-VI. 參考-PostgreSQL 客戶端應用-psql
《PostgreSQL實戰》-第2章 客戶端工具-2.2 psql功能及應用
https://blog.csdn.net/claroja/article/details/82786379(元命令清單)
Tank
2019.7.20
Email:pgertank@126.com
https://blog.csdn.net/pgertank
https://www.cnblogs.com/pgertank