小編最近看了電影《利劍出鞘》,結局中,反派錯拿了一把道具刀導致報復失敗,所以說,選對工具很重要。
在postgresql數據庫中,有這樣一個工具不得不提,那就是psql,掌握好psql,那麼在運維管理postgresql中,將如魚得水,無往不利。
作為一種交互式終端,psql之於postgresql,就如sqlplus之於oracle,但是psql的功能卻比sqlplus強大的多得多!
下面,小編將介紹psql的詳細用法,從最常用的開始,到psql的高級特性!
No.1
連接數據庫
首先從最簡單的連接數據庫開始!例子如下:
-U 指定用,default postgres。
-d 指定數據庫。
-h 指定服務器, default: "local socket"。
-p 指定端口,default 5432。
-W 強制在連接數據庫前輸入密碼。
No.2
交互查詢信息
一般情況下,如果我們想要獲取數據庫的信息,需要完整的查詢命令,比如:
對於懶人來說,能減少輸入的工作無疑是非常令人開心的。,在psql中就是這樣一個懶人工具,提供縮寫命令,往往2、3個字符,就可以得到你想要的結果!
比如和上述例子中同樣效果,僅需輸入 “\\l” !
更貼心的是,即便這些簡單的快捷命令您也不需記憶,輸入”\\?” ,命令和解釋一應俱全!
如果想知道這些快捷命令底層調用的語句是什麼,只需要在pslq登陸的時候,加上 “-E”即可!
除了查詢命令,psql連建立、修改對象的語法都可以直接看到,“\\h (命令)“。psql工具真的是使用者的“小棉襖”!
No.3
控制輸出格式
數據庫自動化監控需求的日益增長,為了方便變量的代入,輸出格式愈發重要。下面來看看psql中控制輸出格式的方式!
常用的如下:
\\t : 去掉列名和(n rows),只顯示結果。
\\a : 去掉結果之間的空格。
效果如下:
這樣就非常方便取值。甚至中間的分割符也可以修改。
例如:\\pset fieldsep & 。這樣分隔符就變成了 “&“。
或者\\pset fieldsep_zero on 取消分隔符。當然\\pset 還有其他用法,通過 \\pset option value 設置,這裡就不一一贅述了!
溫馨提示:\\pset設置僅當前會話生效!
No.4
高級特性之變量設置
psql中可以像腳本語言一樣去設置變量。如下:
看到了嗎!變量既可以作為一個值插入,也可以作為一個近義詞!
區別在於:作為值的時候,要用冒號加上單引號,作為近義詞時,要用冒號加上雙引號或者不加雙引號。
No.5
高級特性之自動運維腳本添加
很多時候,需要快速的去查看數據庫的相關信息,如果能節約輸入命令的時間,這是最好不過了。psql就提供了這樣一種方式,類似於secureCRT中的按鈕欄(如下截圖所示),可以快速執行命令。
編輯 postgresql管理用戶家目錄下下的 .psqlrc文件。格式為 \\set 自定義名字 ‘查詢內容’。
注意:查詢內容中有引號需要轉義符轉義!如下例子:
讓我們看下效果:
可以看到,直接 :自定義名字 就可以查詢!
psql的用法除了上述其實還有很多,這裡就介紹這些比較常用的,其他的小夥伴們可以自己探索!
閱讀更多 美創科技 的文章
關鍵字: PostgreSQL 出鞘 運維