資料庫使用方式(postgreSQL)
Last updated
Was this helpful?
Last updated
Was this helpful?
關係數據庫管理系統是許多網站和應用程序的關鍵組成部分。它們提供了一種結構化的方式來存儲,組織和訪問信息。
PostgreSQL或Postgres是一個關係型數據庫管理系統,提供SQL查詢語言的實現。它是許多小型和大型項目的受歡迎的選擇,並且具有符合標準的優點,並具有許多高級功能,如可靠的事務和並發性,無需讀鎖。
在本指南中,我們將演示如何在CentOS 7上安裝Postgres,並介紹一些使用它的基本方法。
CentOS的默認存儲庫包含Postgres軟件包,因此我們可以使用yum
軟件包系統來安裝它們而不用麻煩。
安裝postgresql-server包和“contrib”包,增加了一些額外的實用程序和功能:
接受提示,通過響應ay
。
現在安裝了我們的軟件,我們必須執行幾個步驟才能使用它。
創建一個新的PostgreSQL數據庫集群:
默認情況下,PostgreSQL不允許密碼認證。我們將通過編輯其基於主機的身份驗證(HBA)配置來進行更改。
使用自己喜歡的文本編輯器打開HBA配置。我們將使用vi:
在文件底部附近找到這樣的行:
pg_hba.conf摘錄(原文)
然後用“md5”替換“ident”,所以他們看起來像這樣:
pg_hba.conf摘錄(更新)
保存並退出。PostgreSQL現在配置為允許密碼認證。
現在啟動並啟用PostgreSQL:
PostgreSQL現在可以使用了。我們可以了解它如何工作,以及它可能與您可能已經使用的類似數據庫管理系統有所不同。
默認情況下,Postgres使用一個名為“roles”的概念來幫助認證和授權。這些在某些方麵類似於常規的Unix風格的帳戶,但Postgres並不區分用戶和組,而是更喜歡更靈活的術語“角色”。
安裝後Postgres設置為使用“ident”身份驗證,這意味著它將Postgres角色與匹配的Unix / Linux系統帳戶相關聯。如果存在Postgres角色,則可以通過登錄相關的Linux系統帳戶登錄。
安裝過程創建了一個postgres
與默認的Postgres角色相關聯的用戶帳戶。為了使用Postgres,我們需要登錄該帳戶。您可以輸入以下內容:
您將被要求您的正常用戶密碼,然後將為用戶提供一個shell提示符postgres
。
您可以輸入以下內容立即獲得Postgres提示:
您將自動登錄,並可以立即與數據庫管理系統進行交互。
但是,我們將要解釋一下如何使用其他角色和數據庫,以便您對要使用的用戶和數據庫有一定的靈活性。
鍵入以下內容退出PostgreSQL提示符:
您現在應該回到postgres
用戶命令提示符。
從postgres
Linux帳戶,您可以登錄數據庫系統。但是,我們還將演示如何創建其他角色。postgres
與Postgres管理角色相關聯的Linux帳戶可以訪問一些實用程序來創建用戶和數據庫。
我們可以通過鍵入以下方式創建新角色:
這基本上是一個交互式shell腳本,調用正確的Postgres命令來創建一個用戶的規範。它只會問你兩個問題:角色的名稱以及它是否應該是超級用戶。通過傳遞一些附加標誌可以獲得更多的控制權。通過查看man
頁面查看選項:
默認情況下設置Postgres(認證由匹配的系統帳戶請求的角色)的方式也假設要存在要連接的角色的匹配數據庫。
所以如果我有一個用戶被調用test1
,該角色將嘗試連接到test1
默認調用的數據庫。
您可以通過簡單地以該postgres
用戶身份調用此命令來創建相應的數據庫:
我們假設你有一個Linux系統帳戶被調用test1
(你可以通過鍵入來創建一個sudo adduser test1
),並且你已經創建了一個Postgres角色和數據庫test1
。
您可以通過鍵入以下內容更改為Linux系統帳戶:
然後,您可以通過鍵入以下內容test1
與test1
Postgres角色連接到數據庫:
假設已經配置了所有組件,這將自動登錄。
如果您希望用戶連接到其他數據庫,可以通過指定數據庫(請確保您\q
到命令提示符)來執行此操作:
您可以輸入以下內容,獲取有關您登錄的Postgres用戶以及當前連接到的數據庫的信息:
如果要連接到非默認數據庫或非默認用戶,這可以幫助您提醒您當前的設置。
您可以使用\l
or\list
命令列出所有數據庫。
現在你知道如何連接到PostgreSQL數據庫系統,我們將開始如何完成一些基本的任務。
首先,我們創建一個表來存儲一些數據。讓我們創建一個描述遊樂設備的表格。
這個命令的基本語法是這樣的:
如您所見,我們給表一個名稱,然後定義我們想要的列,以及字段數據的列類型和最大長度。我們還可以選擇為每列添加表約束。
您可以在這裡了解有關如何在Postgres中創建和管理表格的更多信息。
為了我們的目的,我們將要創建一個簡單的表:
我們製作了一個操作台,清理我們所擁有的設備。這是從serial
類型的設備ID開始的。該數據類型是自動遞增整數。我們給出了這個列的約束,primary key
這意味著值必須是唯一的,而不是null。
對於我們的兩個列,我們沒有給出一個字段長度。這是因為一些列類型不需要設置長度,因為該類型的長度是隱含的。
然後,我們給出設備類型和顏色的列,每個列不能為空。然後,我們創建一個位置列,並創建一個約束,該約束需要該值為八個可能的值之一。最後一列是記錄我們安裝設備的日期的日期列。
我們可以通過鍵入以下方式看到我們的新表:
正如你所看到的,我們有我們的操場表,但是我們也有一些叫做playground_equip_id_seq
類型的東西sequence
。這是我們給我們的equip_id
列的“連續”類型的表示。這跟踪序列中的下一個數字。
如果要查看表格,可以輸入:
現在我們創建了一個表,我們可以在其中插入一些數據。
我們添加一個幻燈片和一個鞦韆。我們通過調用我們想要添加的表來命名列,然後為每列提供數據來做到這一點。我們的幻燈片和鞦韆可以這樣添加:
你應該注意一些事情。首先,請記住,列名不應該被引用,但是您輸入的列值需要引號。
要記住的另一件事是,我們不輸入equip_id
列的值。這是因為當表中的新行被創建時,這是自動生成的。
然後,我們可以通過鍵入以下信息獲取我們添加的信息:
在這裡,您可以看到我們equip_id
已經成功填寫,並且我們所有的其他數據已正確組織。
如果我們的幻燈片斷開,我們將其從操場上移除,我們還可以通過鍵入以下命令從表中刪除該行:
如果我們再次查詢我們的表,我們將看到我們的幻燈片不再是表的一部分:
如果我們要在創建表之後修改一個表以添加一個附加列,那麼我們可以輕鬆地做到這一點。
我們可以添加一列以顯示每件設備的最後一次維護訪問,方法是鍵入以下內容:
如果您再次查看表信息,您將看到已添加新列(但未輸入任何數據):
我們可以輕鬆刪除列。如果我們發現我們的工作人員使用一個單獨的工具來跟踪維護歷史,我們可以通過鍵入以下命令來擺脫列:
我們知道如何向表中添加記錄以及如何刪除它們,但是我們還沒有介紹如何修改現有條目。
您可以通過查詢所需記錄來更新現有條目的值,並將列設置為要使用的值。我們可以查詢“擺動”記錄(這將匹配我們表中的每個擺動),並將其顏色更改為“紅色”。如果我們給它一個油漆工作,這可能是有用的:
我們可以通過再次查詢我們的數據來驗證操作是否成功:
如您所見,我們的幻燈片現在已註冊為紅色。
您現在在CentOS 7服務器上設置了PostgreSQL。