PostgreSQL:psql 介紹

天翼雲開發者社群發表於2023-04-07

本文分享自天翼雲開發者社群《 PostgreSQL:psql 介紹》,作者: 周****平


 

psql 命令是與 PostgreSQL 伺服器互動的客戶端程式,要登入到資料庫伺服器,需要使用psql 客戶端工具或者第三方客戶端工具如PostgreSQL for Navicat,pgAdmin,Visualizer 等等。psql 作為 DBA 通常使用的與 PostgreSQL 互動的客戶端終端程式,因此,熟悉這個命令的用法可以幫助 DBA 快速的操作和維護資料庫。

語法

psql 的預設語法

psql [OPTION]...[資料庫名稱 [使用者名稱]]

 

說明

shell 命令列輸入 psql,會直接進入資料庫,此時的資料庫預設使用者名稱是 postgres,預設的資料庫是 postgres。

連線選項:

-c, --command=COMMAND:執行單行命令。

-d, --dbname=DBNAME:資料庫名稱(預設:“postgres”)

-f, --file=FILENAME:從外部呼叫指令碼檔案

-l, --list:列出可用的資料庫後退出。

-v, --set=, --variable=NAME=VALUE:set psql 變數 NAME to VALUE(例如,-v >

-V, --版本輸出版本資訊,然後退出

-X, --no-psqlrc 不讀取啟動檔案 (~/.psqlrc)

-1 (“one”), --single-transaction:作為單個事務執行(如果是非互動式的)

輸入輸出選項:

-a, --echo-all:將指令碼中的所有輸入都輸出,包含 SQL 命令,儲存過程和預設的 psqlrc 檔案中的命令。

-b, --回聲錯誤回顯失敗命令

-e, --echo-queries echo 命令傳送到伺服器

-E, --echo-hidden:可以獲取元命令的SQL程式碼

-L, --log-file=FILENAME:傳送會話日誌到指定的檔案。

-n, --無讀線禁用增強的命令列編輯(讀線)

-o, --output=FILENAME:和-L不同的是,該引數僅僅將當前登入使用者的執行操作結果儲存到指定的檔案,並且不會顯示輸出到螢幕。

-q, --quiet:以靜默方式執行,沒有額外資訊顯示,只輸出查詢結果,一般結合 Aqt 一起使用。

-s, --單步單步模式(確認每個查詢)

-S, --single-line:: 單行模式,SQL 語句只能寫在一行,而不能換行,不加該引數,SQL 語句可換行。

輸出格式選項

-A, --no-align:不對齊輸出。

--csv:以逗號分隔的表輸出模式。

-F, --field-separator=STRING:域分隔符(預設:|)。

-H, --html:以HTML表格輸出查詢結果。

-P, --pset=VAR[=ARG] 將列印選項 VAR 設定為 ARG(請參見 \pset 命令)

-R, --record-separator=STRING record separator for unigned output(預設值:換行符)

-t, --tuples-only:僅輸出結果行。

-T, --table-attr=TEXT 設定 HTML 表標籤屬性(例如,寬度、邊框)

-x, --擴充套件開啟擴充套件表輸出

-z, --欄位分隔符-零設定欄位分隔符,用於將未對齊的輸出設定為零位元組

-0, --記錄分隔符 --零設定記錄分隔符,用於將未對齊的輸出轉換為零位元組

連結選項

-h, --host=HOSTNAME:遠端資料庫伺服器主機 ip 或 Unix 套接字目錄(預設:“local socket”)

-p, --port=PORT:資料庫執行監聽埠(預設: “5432”)

-U, --username=USERNAME:資料庫使用者名稱(預設: “postgres”)

-w, --no-password:禁用密碼提示

-W, --密碼強制密碼提示(應該自動發生)

示例

登入資料庫

 

元命令

psql 中輸入的以反斜槓開頭的內容都是psql元命令,也叫做反斜槓命令。元命令由psql自身進行處理。

元命令格式為反斜槓後跟引數,如 \copy 命令即為元命令,語法格式為

 

元命令和選項之間可以有一個或者多個空格隔開,如果可選引數中包含了空格,可以用單引號將其引起來,如果是跳脫字元如: \ n(換行),\ t(製表符),\ b(退格鍵),\ r(回車),\ f(換頁),\ digits(八進位制)和\ xdigits(十六進位制)都可以使用單引號引起來。

部分元命令以 SQL識別符號(如表名,函式,序列等)作為引數,這些引數需遵循SQL語法規則:不帶引號的字母將被強制小寫,雙引號之間的字母不進行大小寫轉換,並允許在識別符號中包含空格。在雙引號中,成對的雙引號會當成單引號使用。

psql 提供了豐富的元命令,如檢視資料庫物件定義,資料庫物件空間大小,匯入匯出等元命令,以便於DBA或者開發人員能夠方便的管理和維護資料庫。

通用

\版權顯示 PostgreSQL 使用和分發條款

\交叉表檢視 [列] 執行查詢並在交叉表中顯示結果

\errverbose 以最大詳細程度顯示最新的錯誤訊息

\g [檔案] 或 ;執行查詢(並將結果傳送到檔案或|管道)

\gdesc 描述查詢的結果,而不執行它

\gexec 執行查詢,然後執行其結果中的每個值

\gset [PREFIX] 執行查詢並將結果儲存在 psql 變數中

\gx [FILE] 作為 \g,但強制擴充套件輸出模式

\q                     quit psql

\watch [SEC] 每隔 SEC 秒執行一次查詢

查詢緩衝區

\ef [FUNCNAME [LINE]] 使用外部編輯器編輯函式定義

\ev [檢視名稱 [行]] 使用外部編輯器編輯檢視定義

\p 顯示查詢緩衝區的內容

\r 重置(清除)查詢緩衝區

\s [檔案] 顯示歷史記錄或將其儲存到檔案

\w 檔案將查詢緩衝區寫入檔案

輸入 /輸出

\複製...使用資料流執行 SQL COPY 到客戶端主機

\echo [字串] 將字串寫入標準輸出

\i 檔案從檔案執行命令

\ir FILE 作為 \i,但相對於當前指令碼的位置

\o [檔案] 將所有查詢結果傳送到檔案或|管道

\qecho [STRING] 將字串寫入查詢輸出流(請參見 \o)

有條件的

\如果 EXPR 開始條件塊

\elif EXPR 替代當前條件塊中

\else 當前條件塊中的最終替代項

\endif                 end conditional block

 

資訊檢視

\d[S+]:列出表、檢視、序列、或索引

\d[S+] NAME 描述表、檢視、序列或索引

\da[S] [模式] 列表聚合

\dA[+] [模式] 列表訪問方法

\db[+]  [PATTERN]:列出表空間資訊

\dc[S+] [模式] 列表轉換

\dC[+] [模式] 列表轉換

\dd[S] [模式] 顯示未在其他地方顯示的物件描述

\dD[S+] [模式] 列表域

\ddp [模式] 列出預設許可權

\dE[S+] [模式] 列出外來表

\det[+] [PATTERN] 列出外來表

\des[+] [PATTERN] 列出外部伺服器

\deu[+] [PATTERN] 列表使用者對映

\dew[+] [PATTERN] 列出外來資料包裝器

\df[anptw][S+] [PATRN] 列表 [僅 agg/normal/procedures/trigger/window] 函式

\dF[+] [模式] 列出文字搜尋配置

\dFd[+] [模式] 列表文字搜尋詞典

\dFp[+] [PATTERN] 列表文字搜尋解析器

\dFt[+] [模式] 列表文字搜尋模板

\dg[S+] [模式] 列表角色

\di[S+] [PATTERN]:檢視索引佔用空間大小

\dl 列出與 \lo_list 相同的大型物件

\dL[S+] [模式] 列出過程語言

\dm[S+] [模式] 列出例項化檢視

\dn[S+] [模式] 列表架構

\do[S] [模式] 列表運算子

\dO[S+] [模式] 列表排序規則

\dp [PATTERN] 列出表、檢視和序列訪問許可權

\dP[itn+] [PATTERN] 列表 [僅索引/表] 分割槽關係 [n=巢狀]

\drds [PATRN1 [PATRN2]] 列出每個資料庫的角色設定

\dRp[+] [PATTERN] 列出複製釋出

\dRs[+] [模式] 列出複製訂閱

\ds[S+] [模式] 列表序列

\dt[S+] [PATTERN]:檢視錶佔用空間大小

\dT[S+] [模式] 列出資料型別

\du[S+] [模式] 列表角色

\dv[S+] [模式] 列表檢視

\dx[+] [模式] 列表擴充套件

\dy [模式] 列表事件觸發器

\l[+] [模式] 列表資料庫

\sf[+]  FUNCNAME:檢視函式定義資訊

\sv[+]  VIEWNAME:列出檢視的定義資訊

\z [模式] 與 \dp 相同

格式

\在未對齊和對齊輸出模式之間切換

\C [字串] 設定表標題,如果沒有,則取消設定

\f [字串] 顯示或設定未對齊查詢輸出的欄位分隔符

\H 切換 HTML 輸出模式(當前關閉)

\pset [NAME [VALUE]] 設定表輸出選項

(邊框 |列|csv_fieldsep|展開|欄位|

fieldsep_zero|頁尾|格式|線樣式|空|

數字定位 |頁|pager_min_lines|記錄|

recordsep_zero|tableattr|title|tuples_only|

unicode_border_linestyle|unicode_column_linestyle|

unicode_header_linestyle)

\t [開|關] 僅顯示行(當前關閉)

\T [字串] 設定 HTML <table> 標記屬性,如果沒有,則取消設定

\x [on|off|auto]:可設定查詢結果輸出模式 (預設:off)

連結

\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}:連線到本地或遠端資料庫伺服器

\conninfo 顯示有關當前連線的資訊

\編碼 [編碼] 顯示或設定客戶端編碼

\password [使用者名稱] 安全地更改使用者的密碼

系統操作

\cd [目錄] 更改當前工作目錄

\setenv NAME [VALUE] 設定或取消設定環境變數

\timing [on|off] 切換命令的計時(當前關閉)

\![命令] 在 shell 中執行命令或啟動互動式 shell

引數

\prompt [TEXT] NAME 提示使用者設定內部變數

\未設定名稱 未設定(刪除)內部變數

 

大物件

\lo_export 小葉檔案

\lo_import 檔案 [註釋]

\lo_list

\lo_unlink LOBOID 大型物件操作

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31490526/viewspace-2711967/,如需轉載,請註明出處,否則將追究法律責任。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014251/viewspace-2940068/,如需轉載,請註明出處,否則將追究法律責任。

相關文章