PostgreSQL:psql 介紹
本文分享自天翼雲開發者社群《 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL PSQL tipsSQL
- 【INDEX】Postgresql索引介紹IndexSQL索引
- PostgreSQL 定製psql提示符SQL
- PostgreSQL 事務模型介紹SQL模型
- PostgreSQL 事務模型介紹SQL模型
- postgresql 11版本psql命令幫助大全SQL
- PostgreSQL - psql(客戶端互動命令)SQL客戶端
- postgreSQL 索引(二)型別介紹SQL索引型別
- PostgreSQL中的索引介紹-GiSTSQL索引
- PostgreSQL-search_path介紹(八)SQL
- PostgreSQL資料rotate用法介紹SQL
- postgresql資料庫鎖介紹SQL資料庫
- AnalyticDB for PostgreSQL 6.0 新特性介紹SQL
- 簡單介紹PostgreSQL解析URL的方法SQL
- 介紹PostgreSQL的陣列型別FUSQL陣列型別
- PostgreSQL DBA(148) - pgAdmin(Show script for psql command)SQL
- PostgreSQL提示:‘psql: FATAL: ”Peer authentication failed for user ”postgres“’錯誤SQLAI
- PostgreSQL pg_stat_statements模板介紹和部署SQL
- PostgreSQL DBA(105) - pgAdmin(Don't do this:psql&inheritance)SQL
- PostgreSQL之SQL函式介紹及實踐(一)SQL函式
- 【SQL】SQL表連線方法方式介紹(Oracle/Postgresql)SQLOracle
- 【PG_PSQL】PSQL使用測試SQL
- PostgreSQL DBA(137) - PG 13(Allow invisible PROMPT2 in psql)SQL
- PSQL基本使用(定製PSQL提示符)SQL
- psql語法SQL
- psql: symbol lookup error: ./psql: undefined symbol: PQsetErrorContextVisibilitySQLSymbolErrorUndefinedContext
- PostgreSQL邏輯備份恢復--pg_dump匯出及psql匯入案例SQL
- Sqlserver_Oracle_Mysql_Postgresql不同資料庫之隔離級別介紹ServerOracleMySql資料庫
- PostgreSQL:引數簡介SQL
- LightDB/postgresql內建特性之訪問oracle之oracle_fdw介紹SQLOracle
- 介紹
- PostgreSQL DBA(87) - benchmarksql簡介SQL
- PostgreSQL DBA(8) - sysbench簡介SQL
- PostgreSQL簡介及安裝SQL
- How to Install psql on MacSQLMac
- psql 中使用 gexecSQL
- LAMP架構介紹、MYSQL介紹、安裝LAMP架構MySql
- php介紹PHP