Postgres 又稱 PostgreSQL,是物件關聯式資料庫管理的基石。經過數十年的發展,Postgres 已成為可靠、靈活、高效能的資料庫。
本實踐指南探討了如何在 Postgres 中建立資料庫、表和刪除資料庫。此外,它還展示瞭如何使用資料庫管理工具(如 Adminer)完成相同的任務。
Postgres 入門
首先,確保系統中已安裝 Postgres。如果沒有,請下載必要的檔案並按照安裝說明進行操作。
請記住,這裡展示的命令是在 macOS 上演示的,但它們在任何作業系統上都能無縫執行。
Postgres 安裝完成後,在終端中輸入此命令,以驗證一切執行正常:
postgres -V
該命令將返回 Postgres 安裝的版本號:
Postgres 版本號。
如何連線 PostgreSQL 資料庫伺服器
您已經在系統上安裝了 Postgres,並準備建立資料庫。但如何訪問資料庫呢?這就是 Postgres 互動式終端(俗稱 psql)的用武之地。Psql 是 Postgres 基於終端的前端,允許你向 Postgres 發出查詢,然後檢視查詢結果。
在安裝過程中,Postgres 會在作業系統(OS)上建立一個預設超級使用者,該使用者擁有資料庫的最終訪問許可權。您可以使用此命令以預設超級使用者身份登入 psql 終端:
psql postgres
執行這條命令後,你應該會看到終端變成 postgres=#
,表明你已經以預設超級使用者身份登入。
使用 psql 的最大優勢之一是元命令。通過這些強大的工具,你可以執行資料庫管理任務,如連線資料庫或顯示錶格,而無需知道確切的 SQL 命令。
要在 psql 中使用元命令,請以反斜槓 ( \
) 開頭,然後在後面加上命令。下面是幾個例子:
\c <database-name>
— 連線到特定的資料庫。\l
— 列出伺服器上的所有資料庫。\dt
— 顯示資料庫中的所有表。
如何建立 Postgres 資料庫
在使用資料庫時,一個好的做法是遵循最小許可權原則,建立一個具有特定許可權的新使用者。不過,在本指南中,為了簡單起見,我們還是使用預設的超級使用者來建立和管理資料庫。
首先,執行以下元命令,列出 Postgres 伺服器上的所有使用者:
\du
如果沒有新增任何新使用者,則只能看到預設超級使用者:
本地 Postgres 伺服器上的使用者。
預設超級使用者可能顯示為 Postgres 或作業系統使用者名稱,具體取決於系統配置。
預設情況下,超級使用者沒有密碼。不過,為了以後管理資料庫,可以使用此命令設定密碼:
\password <superuser-name>
根據提示輸入密碼並確認。現在,你可以開始在 Postgres 伺服器上建立資料庫了。建立資料庫的語法是 CREATE DATABASE <database-name>
。
讓我們先建立一個名為 sales
的資料庫:
CREATE DATABASE sales;
資料庫建立成功後會出現以下內容:
建立 Postgres 資料庫。
現在,使用這些命令再建立兩個資料庫:customers
和employees
:
CREATE DATABASE customers; CREATE DATABASE employees;
現在,您已經在本地 Postgres 伺服器上建立了三個資料庫。要列出建立的所有資料庫,請使用這個元命令:
\l
本地 Postgres 伺服器上的資料庫。
這是您目前建立的三個資料庫!你可以忽略圖片中的其他資料庫,因為這些資料庫預設是安裝 Postgres 時自帶的。
現在,你可以連線到一個特定的資料庫。連線任何資料庫的元命令是 \c <database-name>
。
執行以下命令連線 sales
資料庫:
\c sales
終端中應出現以下資訊:
正在連線資料庫。
連線到資料庫後,可以使用相同的命令輕鬆切換到伺服器上的另一個資料庫。因此,可以從 sales
資料庫執行以下命令連線到 customers
資料庫:
\c customers
建立表格
首先,您需要建立表格,為資料庫填充資料。在 Postgres 中建立表格的語法結構如下:
CREATE TABLE <table-name> ( <column1-name> <column1-datatype> <column1-constraint>, <column2-name> <column2-datatype> <column2-constraint>, <column3-name> <column3-datatype> <column3-constraint>, … … <columnN-name> <columnN-datatype> <columnN-constraint> );
首先連線 sales
資料庫。
\c sales
接下來,建立包含三個不能為空的列的 products
表: product_id
、product_name
和 quantity_sold
:
CREATE TABLE products( Product_id INT NOT NULL, Product_name TEXT NOT NULL, Quantity_sold INT NOT NULL );
如果操作成功,您將看到以下輸出:
在資料庫中建立表。
接下來,使用下面的元命令驗證是否已成功建立 products
表:
\dt
該命令列出了資料庫中的所有表,在本例中是一個表。由於您連線的是 sales
資料庫,因此應該會看到以下輸出:
銷售資料庫中的表。
接下來,在 employees
資料庫中建立兩個表。第一個表將列出工資,第二個表將列出地址。要建立這些表,請執行以下命令:
\c employees CREATE TABLE salary( Employee_id INT NOT NULL, Employee_name TEXT NOT NULL, Employee_salary INT NOT NULL ); CREATE TABLE address( Employee_id INT NOT NULL, Employee_country TEXT NOT NULL, Employee_zipcode INT NOT NULL );
最後,執行 \dt
元命令確認已建立這些表。這是你應該看到的輸出結果:
僱員資料庫中的表。
如何刪除 Postgres 資料庫
刪除資料庫和建立資料庫一樣簡單。刪除資料庫的語法是 DROP DATABASE <database-name>;
。
刪除資料庫不需要連線到特定的資料庫。因此,如果要刪除 customers
資料庫,無論連線到哪個資料庫,都可以執行這條命令:
DROP DATABASE customers;
刪除成功後,您將看到此螢幕:
刪除 Postgres 資料庫。
使用 \l
元命令列出本地 Postgres 伺服器上的資料庫,確認 customers
資料庫已不存在。
列出本地 Postgres 伺服器上的資料庫。
使用 Adminer 處理 Postgres 資料庫操作
至此,您已經通過命令列建立資料庫、建立表格和刪除資料庫,學會了 Postgres 的基本操作。
然而,命令列可能會讓人望而生畏,使用起來也很乏味。這時,像 Adminer 這樣的資料庫管理工具就能幫上忙。您可以通過 Adminer 的圖形使用者介面執行上述所有資料庫操作。
您還需要下載 Adminer PHP 檔案,以便使用 Adminer 管理資料庫。開啟終端,啟動執行 PHP 檔案的內建網路伺服器,並導航到放置 Adminer PHP 檔案的位置:
cd path/to/Adminer php file
接下來,使用以下命令啟動網路伺服器:
php -S 127.0.0.1:8000
您就可以在網路瀏覽器上使用 Adminer 使用者介面了。在瀏覽器中輸入以下地址: http://localhost:8000/<your-Adminer-php-file.php>
注:在 URL 欄輸入 Adminer PHP 檔名時,確保包含 .php 副檔名。
您將在瀏覽器中看到 Adminer 使用者介面(UI):
Adminer 主頁使用者介面。
要輸入本地 Postgres 伺服器,請按照以下說明填寫本頁面的欄位:
- 在 System 欄位中選擇 PostgreSQL。
- Server 應預填為 localhost。
- 對於 Username,鍵入超級使用者名稱,可以是 “postgres”,也可以是計算機作業系統的使用者名稱。
- 對於 Password,鍵入在 “Create Databases” 部分為超級使用者設定的密碼。
- Database 欄位留空。
驗證成功後,你將看到之前建立的所有資料庫列表,如下圖所示。如果使用的是 Windows 作業系統,可能會遇到 “None of the supported PHP extensions (PgSQL, PDO_PgSQL) is available” 的錯誤。如果出現這種情況,請編輯 php.ini 檔案並啟用這些擴充套件。
在 Adminer 上檢視 Postgres 資料庫。
要建立新資料庫,請單擊 “Create database” 超連結:
使用 Adminer 建立新資料庫。
將資料庫命名為 “customers
“,然後單擊 “Save” 按鈕。
然後,單擊 Server 超連結(如下所示),驗證是否已建立 customers
資料庫:然後,單擊建立資料庫超連結:
導航到本地 Postgres 伺服器。
現在你將看到 customers
資料庫。點選 customers
連線到它。
可以看到,該資料庫中沒有表。單擊 “Create table” 超連結,建立一個名為 locations
的新表格。
使用 Adminer 在資料庫中建立表格。
根據下圖填寫相應的列,然後單擊 “Save” 按鈕:
在資料庫中建立表格的最後一步。
現在,您應該可以在 customers
資料庫中看到該表:
建立表格的確認資訊。
再次單擊 Server 超連結,檢視所有資料庫。勾選 customers 覈取方塊。選中 customers
資料庫將啟用下面的下拉按鈕。單擊 drop 刪除資料庫。您將收到有關資料庫刪除操作的確認資訊:
刪除資料庫的確認資訊。
小結
現在你已經學會了如何在本地 Postgres 伺服器上通過命令列建立資料庫、在資料庫中建立表格和刪除資料庫。此外,您還學會了如何使用 Adminer 等資料庫管理工具輕鬆執行這些任務。
雖然這些和其他命令列資料庫和表管理方法都很實用,但 Adminer 的點選式使用者介面讓這些任務的執行更加無縫。
評論留言