PostgreSQL(一)教程 -----從頭開始

來源:互聯網
上載者:User

標籤:div   opd   這一   font   作業系統   jdbc   sock   圖形化   拒絕   

一、安裝

自然,在你能開始使用PostgreSQL之前, 你必須安裝它。PostgreSQL很有可能已經安裝到你的節點上了, 因為它可能包含在你的作業系統的發布裡, 或者是系統管理員已經安裝了它。如果是這樣的話, 那麼你應該從作業系統的文檔或者你的系統管理員那裡擷取有關如何訪問PostgreSQL的資訊。

如果你不清楚PostgreSQL是否已經安裝, 或者不知道你能否用它(已經安裝的)做自己的實驗,那麼你就可以自己安裝。 這麼做並不難,並且是一次很好的練習。PostgreSQL可以由任何非特權使用者安裝, 並不需要超級使用者 (root)的許可權。

 

 

二、架構基礎

在我們繼續之前,你應該先瞭解PostgreSQL的系統架構。 對PostgreSQL的組件之間如何相互作用的理解將會使本節更易理解。

在資料庫術語裡,PostgreSQL使用一種用戶端/伺服器的模型。一次PostgreSQL會話由下列相關的進程(程式)組成:

  • 一個伺服器處理序,它管理資料庫檔案、接受來自用戶端應用與資料庫的聯結並且代表用戶端在資料庫上執行操作。 該資料庫伺服器程式叫做postgres。

  • 那些需要執行資料庫操作的使用者的用戶端(前端)應用。 用戶端應用可能本身就是多種多樣的:可以是一個面向文本的工具, 也可以是一個圖形介面的應用,或者是一個通過訪問資料庫來顯示網頁的網頁伺服器,或者是一個特製的資料庫管理工具。 一些用戶端應用是和 PostgreSQL發布一起提供的,但絕大部分是使用者開發的。

 和典型的用戶端/伺服器應用(C/S應用)一樣,這些用戶端和伺服器可以在不同的主機上。 這時它們通過 TCP/IP 網路聯結通訊。 你應該記住的是,在客戶機上可以訪問的檔案未必能夠在資料庫伺服器機器上訪問(或者只能用不同的檔案名稱進行訪問)。

PostgreSQL伺服器可以處理來自用戶端的多個並發請求。 因此,它為每個串連啟動("forks")一個新的進程。 從這個時候開始,用戶端和新伺服器處理序就不再經過最初的 postgres進程的幹涉進行通訊。 因此,主伺服器進程總是在運行並等待著用戶端聯結, 而用戶端和相關聯的伺服器處理序則是起起停停(當然,這些對使用者是透明的。我們介紹這些主要是為了內容的完整性)。

三、建立一個資料庫  

看看你能否訪問資料庫伺服器的第一個例子就是試著建立一個資料庫。 一台運行著的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

(對於這條命令而言,資料庫名不是預設的使用者名稱,因此你就必須聲明它) 。這個動作將在物理上把所有與該資料庫相關的檔案都刪除並且不可取消, 因此做這中操作之前一定要考慮清楚。



四、訪問資料庫
一旦你建立了資料庫,你就可以通過以下方式訪問它:
(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提示符上鍵入\?。)


 











 

PostgreSQL(一)教程 -----從頭開始

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.