PostgreSQL數(shù)據(jù)庫管理入門之psql工具篇
導讀:psql是PostgreSQL自身提供的一款強大的查詢和腳本工具,本文將向讀者介紹該工具的入門知識。
▲PostgreSQL數(shù)據(jù)庫標志
一、關于psql
psql是PostgreSQL自身提供的一款查詢工具,也就是說,無論哪種操作系統(tǒng)平臺下,該工具都可用,并且使用方法都是一致的。所以,當我們開發(fā)可移植的應用軟件和技術的時候,該工具是一個理想的選擇。
Psql有兩大功能,除了作為交互查詢工具使用之外,psql還是一款理想的腳本工具。
二、使用方法
本文中,我們假設psql有權訪問PostgreSQL服務器,所有連接參數(shù)都是缺省的,但是現(xiàn)實中并非總是這樣。我們當前的連接參數(shù)如下所示:
psql –h hostname –p 5432 –d dbname –U username –W
下面開始介紹有關的具體操作。psql 最簡單的用法就是執(zhí)行單個SQL命令,并輸出命令結果,如下所示:
$ psql -c "SELECT current_time"
timetz
-----------------
20:48:62.384+01
(1 row)
帶 -c的命令表示為非交互式的。如果您想一次執(zhí)行多條命令的話,可以將這些命令寫入一個文本文件中,然后通過-f 選項來執(zhí)行它們。下面給出的命令將加載一組命令:
$ psql –f examples.sql
如果執(zhí)行成功,會產生如下所示的輸出:
SET
SET
SET
SET
SET
SET
CREATE SCHEMA
SET
SET
SET
DROP TABLE
CREATE TABLE
DROP TABLE
CREATE TABLE
腳本examples.sql非常類似于PostgreSQL備份工具所建立的轉儲文件,并且它們的類型與結果也是非常相通的。當上面的命令成功執(zhí)行的時候,PostgreSQL會用命令的名稱生成命令標簽,就像上面看到的輸出結果那樣。
上面的用法類似于批處理方式,實際上psql還可以用于交互方式,并且該方式是默認的工作方式,無需任何選項,例如:
$ psql
postgres=#
下面我們開始練習我們的***條交互式命令,像下面這樣:
postgres=# help
然后,我們就可以輸入SQL或其他的命令了。當我們要退出交互模式的時候,可以使用如下所示的命令:
postgres=# \quit
注意,這里您不能輸入quit,也不能輸入\exit或者其他選項,而只能是\quit或者\q,后者是前者的簡寫形式。
三、命令類型
psql允許使用兩種類型的命令:
psql "meta-commands"
SQL
meta-command 是用于psql客戶端,而SQL則發(fā)給數(shù)據(jù)庫服務器。meta-command的一個例子是\q,它命令客戶端斷開連接。所有以反斜線符號\開頭的命令都被作為meta-command。
如果一條命令不是meta-command,那么它就是SQL命令。該命令將一直讀取SQL,直到遇見分號為止,所以我們可以將一條較長的SQL命令分到多行中,只要您覺得方便即可。
命令help是***的例外。help命令有兩種形式,如下所示:
\? 提供psql meta - commands命令的幫助信息
\h 提供特定SQL命令的幫助信息
下面舉例進行說明:
postgres=# \h DELETE
Command: DELETE
Description: delete rows of a table
Syntax:
DELETE FROM [ ONLY ] table [ [ AS ] alias ]
[ USING usinglist ]
[ WHERE condition | WHERE CURRENT OF cursor_name ]
[ RETURNING * | output_expression [ AS output_name ] [,]]
經驗表明,這是一種探索和記憶選項和語法好方法。
四、注釋方法
有兩種常用的注釋方法,即單行注釋和多行注釋,下面分別加以解釋。單行注釋用雙破折號表示:
-- 這里是單行注釋
而多行注釋與Java語法類似,如下:
/**//*
*多行注釋
*/
五、其它功能
開始的時候,您對于psql的反斜扛命令可能不太適應,但是用一段時間就好了,您會發(fā)現(xiàn),該軟件是非常強大的。psql是PostgreSQL最神奇的部分之一,用過其他工具后您會發(fā)現(xiàn),它對于數(shù)據(jù)庫管理任務來說,作用非凡。
當然,我們可回滾早先的命令歷史記錄功能。此外,tab補齊功能也是非常有幫助的,因為只要按下TAB鍵,程序就會幫我們完成后面的語法部分。該功能對于對象名稱也同樣有效,所以我們只輸入前幾個字母,然后按Tab鍵所有可能的選擇都會顯示出來,這樣只要輸入足夠多的字符,對象名稱就會變成***選擇,這時敲一下Tab鍵就搞定了。下面是psql其它的有用的特性:
通知功能
輸出格式化
使用\timing命令計算執(zhí)行時間
輸入、輸出和編輯命令
自動起動執(zhí)行文件:.psqlrc
可替代的參數(shù)(變量)
訪問OS命令行
六、小結
從上文中可以總結出psql功能性是很強大的,學習數(shù)據(jù)庫管理知識就要首先了解psql,希望上文中涉及到的能夠幫助到大家。
【編輯推薦】