1、安裝前端
天然,在你能開始使用PostgreSQL以前, 你必須安裝它。PostgreSQL頗有可能已經安裝到你的節點上了, 由於它可能包含在你的操做系統的發佈裏, 或者是系統管理員已經安裝了它。若是是這樣的話, 那麼你應該從操做系統的文檔或者你的系統管理員那裏獲取有關如何訪問PostgreSQL的信息。sql
若是你不清楚PostgreSQL是否已經安裝, 或者不知道你可否用它(已經安裝的)作本身的實驗,那麼你就能夠本身安裝。 這麼作並不難,而且是一次很好的練習。PostgreSQL能夠由任何非特權用戶安裝, 並不須要超級用戶 (root)的權限。shell
2、架構基礎數據庫
在咱們繼續以前,你應該先了解PostgreSQL的系統架構。 對PostgreSQL的部件之間如何相互做用的理解將會使本節更易理解。服務器
在數據庫術語裏,PostgreSQL使用一種客戶端/服務器的模型。一次PostgreSQL會話由下列相關的進程(程序)組成:網絡
一個服務器進程,它管理數據庫文件、接受來自客戶端應用與數據庫的聯接而且表明客戶端在數據庫上執行操做。 該數據庫服務器程序叫作postgres。架構
那些須要執行數據庫操做的用戶的客戶端(前端)應用。 客戶端應用可能自己就是多種多樣的:能夠是一個面向文本的工具, 也能夠是一個圖形界面的應用,或者是一個經過訪問數據庫來顯示網頁的網頁服務器,或者是一個特製的數據庫管理工具。 一些客戶端應用是和 PostgreSQL發佈一塊兒提供的,但絕大部分是用戶開發的。併發
和典型的客戶端/服務器應用(C/S應用)同樣,這些客戶端和服務器能夠在不一樣的主機上。 這時它們經過 TCP/IP 網絡聯接通信。 你應該記住的是,在客戶機上能夠訪問的文件未必可以在數據庫服務器機器上訪問(或者只能用不一樣的文件名進行訪問)。dom
PostgreSQL服務器能夠處理來自客戶端的多個併發請求。 所以,它爲每一個鏈接啓動("forks")一個新的進程。 從這個時候開始,客戶端和新服務器進程就再也不通過最初的 postgres進程的干涉進行通信。 所以,主服務器進程老是在運行並等待着客戶端聯接, 而客戶端和相關聯的服務器進程則是起起停停(固然,這些對用戶是透明的。咱們介紹這些主要是爲了內容的完整性)。socket
3、建立一個數據庫
看看你可否訪問數據庫服務器的第一個例子就是試着建立一個數據庫。 一臺運行着的PostgreSQL服務器能夠管理許多數據庫。 一般咱們會爲每一個項目和每一個用戶單獨使用一個數據庫。你的站點管理員可能已經爲你建立了可使用的數據庫。 若是這樣你就能夠省略這一步, 而且跳到下一節。
要建立一個新的數據庫,在咱們這個例子裏叫mydb,你可使用下面的命令:
createdb mydb
若是看到相似下面的信息
createdb: command not found
那麼就是PostgreSQL沒有安裝好。或者是根本沒安裝, 或者是你的shell搜索路徑沒有設置正確。嘗試用絕對路徑調用該命令試試:
/usr/local/pgsql/bin/createdb mydb 在你的站點上這個路徑可能不同。和你的站點管理員聯繫或者看看安裝指導獲取正確的位置。
另一種響應多是這樣:
createdb: could not connect to database postgres: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
這意味着該服務器沒有啓動,或者沒有按照createdb預期地啓動。一樣, 你也要查看安裝指導或者諮詢管理員。
另一個響應多是這樣:
createdb: could not connect to database postgres: FATAL: role "joe" does not exist
在這裏提到了你本身的登錄名。若是管理員沒有爲你建立PostgreSQL用戶賬號, 就會發生這些現象。(PostgreSQL用戶賬號和操做系統用戶賬號是不一樣的。)
你須要變成安裝PostgreSQL的操做系統用戶的身份(一般是 postgres)才能建立第一個用戶賬號。 也有多是賦予你的PostgreSQL用戶名和你的操做系統用戶名不一樣; 這種狀況下,你須要使用-U選項或者使用PGUSER環境變量指定你的PostgreSQL用戶名。
若是你有個數據庫用戶賬號,可是沒有建立數據庫所須要的權限,那麼你會看到下面的信息:
createdb: database creation failed: ERROR: permission denied to create database
並不是全部用戶都被許可建立新數據庫。 若是PostgreSQL拒絕爲你建立數據庫, 那麼你須要讓站點管理員賦予你建立數據庫的權限。出現這種狀況時請諮詢你的站點管理員。 若是你本身安裝了PostgreSQL, 那麼你應該以你啓動數據庫服務器的用戶身份登錄而後參考手冊完成權限的賦予工做。
你還能夠用其它名字建立數據庫。PostgreSQL容許你在一個站點上建立任意數量的數據庫。 數據庫名必須是以字母開頭而且小於 63 個字符長。 一個方便的作法是建立和你當前用戶名同名的數據庫。 許多工具假設該數據庫名爲缺省數據庫名,因此這樣能夠節省你的敲鍵。 要建立這樣的數據庫,只須要鍵入:
createdb
果你不再想使用你的數據庫了,那麼你能夠刪除它。 好比,若是你是數據庫mydb的全部人(建立人), 那麼你就能夠用下面的命令刪除它:
dropdb mydb
(對於這條命令而言,數據庫名不是缺省的用戶名,所以你就必須聲明它) 。這個動做將在物理上把全部與該數據庫相關的文件都刪除而且不可取消, 所以作這中操做以前必定要考慮清楚。
4、訪問數據庫
一旦你建立了數據庫,你就能夠經過如下方式訪問它:
(1)運行PostgreSQL的交互式終端程序,它被稱爲psql, 它容許你交互地輸入、編輯和執行SQL命令。
(2)使用一種已有的圖形化前端工具,好比pgAdmin或者帶ODBC或JDBC支持的辦公套件來建立和管理數據庫。
(3)使用多種綁定發行的語言中的一種寫一個自定義的應用。
你可能須要啓動psql來試驗本教程中的例子。 你能夠用下面的命令爲mydb數據庫激活它:
psql mydb
若是你不提供數據庫名字,那麼它的缺省值就是你的用戶帳號名字。在前面使用createdb的小節裏你應該已經瞭解了這種方式。
在psql中,你將看到下面的歡迎信息:
psql (9.6.0) Type "help" for help. mydb=>
最後一行也多是:
mydb=#
這個提示符意味着你是數據庫超級用戶,最可能出如今你本身安裝了 PostgreSQL實例的狀況下。 做爲超級用戶意味着你不受訪問控制的限制。 對於本教程的目的而言, 是否超級用戶並不重要。
若是你啓動psql時碰到了問題,那麼請回到前面的小節。診斷createdb的方法和診斷 psql的方法很相似, 若是前者能運行那麼後者也應該能運行。
psql打印出的最後一行是提示符,它表示psql正聽着你說話,這個時候你就能夠敲入 SQL查詢到一個psql維護的工做區中。試驗一下下面的命令:
psql程序有一些不屬於SQL命令的內部命令。它們以反斜線開頭,"\"。 歡迎信息中列出了一些這種命令。好比,你能夠用下面的命令獲取各類PostgreSQL的SQL命令的幫助語法:
mydb=> \h
要退出psql,輸入:
mydb=> \q
psql將會退出而且讓你返回到命令行shell。 (要獲取更多有關內部命令的信息,你能夠在psql提示符上鍵入\?。)