psql是PostgreSQL中的一個命令行交互式客戶端工具,類似Oracle中的sqlplus,但比sqlplus方便。
由於我使用的PostgreSQL是用docker部署的,所以使用docker命令進入。先查看pg的容器id:docker ps,然後執行如下命令進入容器:
docker exec -it 容器id psql -U postgres -d postgres 或者 docker exec -it 容器name psql -U postgres -d postgres
\d命令
postgres=# \l //查看數據庫列表
postgres=# \c ota_system //進入指定的數據庫
postgres=# select tablename from pg_tables; //查看數據庫所有的表
postgres=# \d //列出當前數據庫中的所有表
postgres=# \d t //\d後面跟一個表名,表示顯示這個表的結構定義
postgres=# \d t_pkey //\d後面跟一個索引名,顯示索引的信息
postgres=# \d x? //\d後面跟一通配符"*"或"?",這裏是顯示錶名以x開頭的表信息
postgres=# \d+ t //該命令顯示比\d更詳細的信息,比如還會顯示任何與表列關聯的註釋,以及表中出現的OID
postgres=# \timing //如果想顯示SQL已執行的時間,可以先執行\timing命令
postgres=# \dn //列出所有的schema
postgres=# \db //列出所有的表空間
postgres=# \du //想要列出數據庫中的所有角色或用戶,可以使用\du或\dg命令
postgres=# \dp t //\dp或\z命令用於顯示錶的權限分配情況
指定字符串編譯命令
postgres=# \encoding utf8 //設置客戶端的字符編碼
\pset命令
postgres=# \pset border 0 //\pset命令用於設置輸出格式,0:輸出內容無邊框;1:邊框只在內部;2:內外都有邊框
postgres=# \x //先執行,然後可以把後面從表中查出的每一行的每列的數據都拆分爲單行展示
postgres=# \i getsql //\i <文件名> 執行存儲在外部文件中的sql語句或命令
//也可以在psql命令行加 -s <filename> 來執行sql腳本
psql -x -f getsql
//其中命令行的參數 -x 相當於在psql交互模式下執行\x命令
postgres=# \echo hello world //\echo用於輸出一行信息
postgres=# \? //顯示更多命令