運維日記|postgresql-利劍出鞘-psql出手,天下我有

小編最近看了電影《利劍出鞘》,結局中,反派錯拿了一把道具刀導致報復失敗,所以說,選對工具很重要。


在postgresql數據庫中,有這樣一個工具不得不提,那就是psql,掌握好psql,那麼在運維管理postgresql中,將如魚得水,無往不利。


作為一種交互式終端,psql之於postgresql,就如sqlplus之於oracle,但是psql的功能卻比sqlplus強大的多得多!


下面,小編將介紹psql的詳細用法,從最常用的開始,到psql的高級特性!

運維日記|postgresql-利劍出鞘-psql出手,天下我有


No.1

連接數據庫


首先從最簡單的連接數據庫開始!例子如下:

運維日記|postgresql-利劍出鞘-psql出手,天下我有

-U 指定用,default postgres。

-d 指定數據庫。

-h 指定服務器, default: "local socket"。

-p 指定端口,default 5432。

-W 強制在連接數據庫前輸入密碼。

運維日記|postgresql-利劍出鞘-psql出手,天下我有


No.2

交互查詢信息


一般情況下,如果我們想要獲取數據庫的信息,需要完整的查詢命令,比如:

運維日記|postgresql-利劍出鞘-psql出手,天下我有


對於懶人來說,能減少輸入的工作無疑是非常令人開心的。,在psql中就是這樣一個懶人工具,提供縮寫命令,往往2、3個字符,就可以得到你想要的結果!

比如和上述例子中同樣效果,僅需輸入 “\\l” !

運維日記|postgresql-利劍出鞘-psql出手,天下我有


更貼心的是,即便這些簡單的快捷命令您也不需記憶,輸入”\\?” ,命令和解釋一應俱全!

運維日記|postgresql-利劍出鞘-psql出手,天下我有


如果想知道這些快捷命令底層調用的語句是什麼,只需要在pslq登陸的時候,加上 “-E”即可!

運維日記|postgresql-利劍出鞘-psql出手,天下我有


除了查詢命令,psql連建立、修改對象的語法都可以直接看到,“\\h (命令)“。psql工具真的是使用者的“小棉襖”!

運維日記|postgresql-利劍出鞘-psql出手,天下我有

運維日記|postgresql-利劍出鞘-psql出手,天下我有


No.3

控制輸出格式


數據庫自動化監控需求的日益增長,為了方便變量的代入,輸出格式愈發重要。下面來看看psql中控制輸出格式的方式!


常用的如下:

\\t : 去掉列名和(n rows),只顯示結果。

\\a : 去掉結果之間的空格。


效果如下:

運維日記|postgresql-利劍出鞘-psql出手,天下我有


這樣就非常方便取值。甚至中間的分割符也可以修改。


例如:\\pset fieldsep & 。這樣分隔符就變成了 “&“。


或者\\pset fieldsep_zero on 取消分隔符。當然\\pset 還有其他用法,通過 \\pset option value 設置,這裡就不一一贅述了!


溫馨提示:\\pset設置僅當前會話生效!


No.4

高級特性之變量設置


psql中可以像腳本語言一樣去設置變量。如下:

運維日記|postgresql-利劍出鞘-psql出手,天下我有

看到了嗎!變量既可以作為一個值插入,也可以作為一個近義詞!


區別在於:作為值的時候,要用冒號加上單引號,作為近義詞時,要用冒號加上雙引號或者不加雙引號。


No.5

高級特性之自動運維腳本添加


很多時候,需要快速的去查看數據庫的相關信息,如果能節約輸入命令的時間,這是最好不過了。psql就提供了這樣一種方式,類似於secureCRT中的按鈕欄(如下截圖所示),可以快速執行命令。

運維日記|postgresql-利劍出鞘-psql出手,天下我有


編輯 postgresql管理用戶家目錄下下的 .psqlrc文件。格式為 \\set 自定義名字 ‘查詢內容’。


注意:查詢內容中有引號需要轉義符轉義!如下例子:

運維日記|postgresql-利劍出鞘-psql出手,天下我有


讓我們看下效果:

運維日記|postgresql-利劍出鞘-psql出手,天下我有

可以看到,直接 :自定義名字 就可以查詢!


psql的用法除了上述其實還有很多,這裡就介紹這些比較常用的,其他的小夥伴們可以自己探索!

運維日記|postgresql-利劍出鞘-psql出手,天下我有


分享到:


相關文章: