博客專欄

EEPW首頁(yè) > 博客 > PostgreSQL:psql 介紹

PostgreSQL:psql 介紹

發(fā)布人:天翼云開(kāi)發(fā)者 時(shí)間:2023-03-20 來(lái)源:工程師 發(fā)布文章

本文分享自天翼云開(kāi)發(fā)者社區(qū)《PostgreSQL:psql 介紹》,作者: 周****平

鏈接:

https://www.ctyun.cn/developer/article/358337908486290?track=|cp:cz_bk|tgdy:wenzhang|ttjh:bokeshequ|key:bw302|pf:PC

 

psql 作psql 命令是與 PostgreSQL 服務(wù)器交互的客戶端程序,要登錄到數(shù)據(jù)庫(kù)服務(wù)器,需要使用psql 客戶端工具或者第三方客戶端工具如PostgreSQL for Navicat,pgAdmin,Visualizer 等等。為 DBA 通常使用的與 PostgreSQL 交互的客戶端終端程序,因此,熟悉這個(gè)命令的用法可以幫助 DBA 快速的操作和維護(hù)數(shù)據(jù)庫(kù)。

語(yǔ)法

psql 的默認(rèn)語(yǔ)法

psql [OPTION]...[數(shù)據(jù)庫(kù)名稱 [用戶名]]

 

說(shuō)明

shell 命令行輸入 psql,會(huì)直接進(jìn)入數(shù)據(jù)庫(kù),此時(shí)的數(shù)據(jù)庫(kù)默認(rèn)用戶名是 postgres,默認(rèn)的數(shù)據(jù)庫(kù)是 postgres。

連接選項(xiàng):

-c, --command=COMMAND:執(zhí)行單行命令。

-d, --dbname=DBNAME:數(shù)據(jù)庫(kù)名稱(默認(rèn):“postgres”)

-f, --file=FILENAME:從外部調(diào)用腳本文件

-l, --list:列出可用的數(shù)據(jù)庫(kù)后退出。

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

-V, --版本輸出版本信息,然后退出

-X, --no-psqlrc 不讀取啟動(dòng)文件 (~/.psqlrc)

-1 (“one”), --single-transaction:作為單個(gè)事務(wù)執(zhí)行(如果是非交互式的)

輸入輸出選項(xiàng):

-a, --echo-all:將腳本中的所有輸入都輸出,包含 SQL 命令,存儲(chǔ)過(guò)程和默認(rèn)的 psqlrc 文件中的命令。

-b, --回聲錯(cuò)誤回顯失敗命令

-e, --echo-queries echo 命令發(fā)送到服務(wù)器

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

-L, --log-file=FILENAME:發(fā)送會(huì)話日志到指定的文件。

-n, --無(wú)讀線禁用增強(qiáng)的命令行編輯(讀線)

-o, --output=FILENAME:和-L不同的是,該參數(shù)僅僅將當(dāng)前登錄用戶的執(zhí)行操作結(jié)果保存到指定的文件,并且不會(huì)顯示輸出到屏幕。

-q, --quiet:以靜默方式運(yùn)行,沒(méi)有額外信息顯示,只輸出查詢結(jié)果,一般結(jié)合 Aqt 一起使用。

-s, --單步單步模式(確認(rèn)每個(gè)查詢)

-S, --single-line:: 單行模式,SQL 語(yǔ)句只能寫在一行,而不能換行,不加該參數(shù),SQL 語(yǔ)句可換行。

輸出格式選項(xiàng)

-A, --no-align:不對(duì)齊輸出。

--csv:以逗號(hào)分隔的表輸出模式。

-F, --field-separator=STRING:域分隔符(默認(rèn):|)。

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

-P, --pset=VAR[=ARG] 將打印選項(xiàng) VAR 設(shè)置為 ARG(請(qǐng)參見(jiàn) \pset 命令)

-R, --record-separator=STRING record separator for unigned output(默認(rèn)值:換行符)

-t, --tuples-only:僅輸出結(jié)果行。

-T, --table-attr=TEXT 設(shè)置 HTML 表標(biāo)簽屬性(例如,寬度、邊框)

-x, --擴(kuò)展打開(kāi)擴(kuò)展表輸出

-z, --字段分隔符-零設(shè)置字段分隔符,用于將未對(duì)齊的輸出設(shè)置為零字節(jié)

-0, --記錄分隔符 --零設(shè)置記錄分隔符,用于將未對(duì)齊的輸出轉(zhuǎn)換為零字節(jié)

鏈接選項(xiàng)

-h, --host=HOSTNAME:遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器主機(jī) ip 或 Unix 套接字目錄(默認(rèn):“l(fā)ocal socket”)

-p, --port=PORT:數(shù)據(jù)庫(kù)運(yùn)行監(jiān)聽(tīng)端口(默認(rèn): “5432”)

-U, --username=USERNAME:數(shù)據(jù)庫(kù)用戶名(默認(rèn): “postgres”)

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

-W, --密碼強(qiáng)制密碼提示(應(yīng)該自動(dòng)發(fā)生)

示例

登錄數(shù)據(jù)庫(kù)

 

元命令

psql 中輸入的以反斜杠開(kāi)頭的內(nèi)容都是psql元命令,也叫做反斜杠命令。元命令由psql自身進(jìn)行處理。

元命令格式為反斜杠后跟參數(shù),如\copy 命令即為元命令,語(yǔ)法格式為

 

元命令和選項(xiàng)之間可以有一個(gè)或者多個(gè)空格隔開(kāi),如果可選參數(shù)中包含了空格,可以用單引號(hào)將其引起來(lái),如果是轉(zhuǎn)義字符如: \ n(換行),\ t(制表符),\ b(退格鍵),\ r(回車),\ f(換頁(yè)),\ digits(八進(jìn)制)和\ xdigits(十六進(jìn)制)都可以使用單引號(hào)引起來(lái)。

部分元命令以SQL標(biāo)識(shí)符(如表名,函數(shù),序列等)作為參數(shù),這些參數(shù)需遵循SQL語(yǔ)法規(guī)則:不帶引號(hào)的字母將被強(qiáng)制小寫,雙引號(hào)之間的字母不進(jìn)行大小寫轉(zhuǎn)換,并允許在標(biāo)識(shí)符中包含空格。在雙引號(hào)中,成對(duì)的雙引號(hào)會(huì)當(dāng)成單引號(hào)使用。

psql 提供了豐富的元命令,如查看數(shù)據(jù)庫(kù)對(duì)象定義,數(shù)據(jù)庫(kù)對(duì)象空間大小,導(dǎo)入導(dǎo)出等元命令,以便于DBA或者開(kāi)發(fā)人員能夠方便的管理和維護(hù)數(shù)據(jù)庫(kù)。

通用

\版權(quán)顯示 PostgreSQL 使用和分發(fā)條款

\交叉表視圖 [列] 執(zhí)行查詢并在交叉表中顯示結(jié)果

\errverbose 以最大詳細(xì)程度顯示最新的錯(cuò)誤消息

\g [文件] 或 ;執(zhí)行查詢(并將結(jié)果發(fā)送到文件或|管道)

\gdesc 描述查詢的結(jié)果,而不執(zhí)行它

\gexec 執(zhí)行查詢,然后執(zhí)行其結(jié)果中的每個(gè)值

\gset [PREFIX] 執(zhí)行查詢并將結(jié)果存儲(chǔ)在 psql 變量中

\gx [FILE] 作為 \g,但強(qiáng)制擴(kuò)展輸出模式

\q                     quit psql

\watch [SEC] 每隔 SEC 秒執(zhí)行一次查詢

查詢緩沖區(qū)

\ef [FUNCNAME [LINE]] 使用外部編輯器編輯函數(shù)定義

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

\p 顯示查詢緩沖區(qū)的內(nèi)容

\r 重置(清除)查詢緩沖區(qū)

\s [文件] 顯示歷史記錄或?qū)⑵浔4娴轿募?/span>

\w 文件將查詢緩沖區(qū)寫入文件

輸入/輸出

\復(fù)制...使用數(shù)據(jù)流執(zhí)行 SQL COPY 到客戶端主機(jī)

\echo [字符串] 將字符串寫入標(biāo)準(zhǔn)輸出

\i 文件從文件執(zhí)行命令

\ir FILE 作為 \i,但相對(duì)于當(dāng)前腳本的位置

\o [文件] 將所有查詢結(jié)果發(fā)送到文件或|管道

\qecho [STRING] 將字符串寫入查詢輸出流(請(qǐng)參見(jiàn) \o)

有條件的

\如果 EXPR 開(kāi)始條件塊

\elif EXPR 替代當(dāng)前條件塊中

\else 當(dāng)前條件塊中的最終替代項(xiàng)

\endif                 end conditional block

 

信息查看

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

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

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

\dA[+] [模式] 列表訪問(wèn)方法

\db[+]  [PATTERN]:列出表空間信息

\dc[S+] [模式] 列表轉(zhuǎn)換

\dC[+] [模式] 列表轉(zhuǎn)換

\dd[S] [模式] 顯示未在其他地方顯示的對(duì)象描述

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

\ddp [模式] 列出默認(rèn)權(quán)限

\dE[S+] [模式] 列出外來(lái)表

\det[+] [PATTERN] 列出外來(lái)表

\des[+] [PATTERN] 列出外部服務(wù)器

\deu[+] [PATTERN] 列表用戶映射

\dew[+] [PATTERN] 列出外來(lái)數(shù)據(jù)包裝器

\df[anptw][S+] [PATRN] 列表 [僅 agg/normal/procedures/trigger/window] 函數(shù)

\dF[+] [模式] 列出文本搜索配置

\dFd[+] [模式] 列表文本搜索詞典

\dFp[+] [PATTERN] 列表文本搜索解析器

\dFt[+] [模式] 列表文本搜索模板

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

\di[S+] [PATTERN]:查看索引占用空間大小

\dl 列出與 \lo_list 相同的大型對(duì)象

\dL[S+] [模式] 列出過(guò)程語(yǔ)言

\dm[S+] [模式] 列出實(shí)例化視圖

\dn[S+] [模式] 列表架構(gòu)

\do[S] [模式] 列表運(yùn)算符

\dO[S+] [模式] 列表排序規(guī)則

\dp [PATTERN] 列出表、視圖和序列訪問(wèn)權(quán)限

\dP[itn+] [PATTERN] 列表 [僅索引/表] 分區(qū)關(guān)系 [n=嵌套]

\drds [PATRN1 [PATRN2]] 列出每個(gè)數(shù)據(jù)庫(kù)的角色設(shè)置

\dRp[+] [PATTERN] 列出復(fù)制發(fā)布

\dRs[+] [模式] 列出復(fù)制訂閱

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

\dt[S+] [PATTERN]:查看表占用空間大小

\dT[S+] [模式] 列出數(shù)據(jù)類型

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

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

\dx[+] [模式] 列表擴(kuò)展

\dy [模式] 列表事件觸發(fā)器

\l[+] [模式] 列表數(shù)據(jù)庫(kù)

\sf[+]  FUNCNAME:查看函數(shù)定義信息

\sv[+]  VIEWNAME:列出視圖的定義信息

\z [模式] 與 \dp 相同

格式

\在未對(duì)齊和對(duì)齊輸出模式之間切換

\C [字符串] 設(shè)置表標(biāo)題,如果沒(méi)有,則取消設(shè)置

\f [字符串] 顯示或設(shè)置未對(duì)齊查詢輸出的字段分隔符

\H 切換 HTML 輸出模式(當(dāng)前關(guān)閉)

\pset [NAME [VALUE]] 設(shè)置表輸出選項(xiàng)

(邊框|列|csv_fieldsep|展開(kāi)|字段|

fieldsep_zero|頁(yè)腳|格式|線樣式|空|

數(shù)字定位|頁(yè)|pager_min_lines|記錄|

recordsep_zero|tableattr|title|tuples_only|

unicode_border_linestyle|unicode_column_linestyle|

unicode_header_linestyle)

\t [開(kāi)|關(guān)] 僅顯示行(當(dāng)前關(guān)閉)

\T [字符串] 設(shè)置 HTML <table> 標(biāo)記屬性,如果沒(méi)有,則取消設(shè)置

\x [on|off|auto]:可設(shè)置查詢結(jié)果輸出模式 (默認(rèn):off)

鏈接

\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}:連接到本地或遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器

\conninfo 顯示有關(guān)當(dāng)前連接的信息

\編碼 [編碼] 顯示或設(shè)置客戶端編碼

\password [用戶名] 安全地更改用戶的密碼

系統(tǒng)操作

\cd [目錄](méi) 更改當(dāng)前工作目錄

\setenv NAME [VALUE] 設(shè)置或取消設(shè)置環(huán)境變量

\timing [on|off] 切換命令的計(jì)時(shí)(當(dāng)前關(guān)閉)

\![命令] 在 shell 中執(zhí)行命令或啟動(dòng)交互式 shell

參數(shù)

\prompt [TEXT] NAME 提示用戶設(shè)置內(nèi)部變量

\未設(shè)置名稱 未設(shè)置(刪除)內(nèi)部變量

 

大對(duì)象

\lo_export 小葉文件

\lo_import 文件 [注釋]

\lo_list

\lo_unlink LOBOID 大型對(duì)象操作

 

 

來(lái)自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/31490526/viewspace-2711967/,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任。

 


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: 數(shù)據(jù)庫(kù) SQL

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉