欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解如何在Ubuntu?18.04上安裝和使用PostgreSQL

 更新時(shí)間:2024年07月28日 14:37:08   作者:白如意i  
關(guān)系數(shù)據(jù)庫管理系統(tǒng)是許多網(wǎng)站和應(yīng)用程序的關(guān)鍵組件,它們提供了一種結(jié)構(gòu)化的方式來存儲、組織和訪問信息,本文演示了如何在?Ubuntu?18.04?VPS?實(shí)例上安裝?Postgres,并提供了基本數(shù)據(jù)庫管理的說明,需要的朋友可以參考下

簡介

關(guān)系數(shù)據(jù)庫管理系統(tǒng)是許多網(wǎng)站和應(yīng)用程序的關(guān)鍵組件。它們提供了一種結(jié)構(gòu)化的方式來存儲、組織和訪問信息。

PostgreSQL,或者簡稱為 Postgres,是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng),提供了 SQL 查詢語言的實(shí)現(xiàn)。它是許多小型和大型項(xiàng)目的熱門選擇,并且具有符合標(biāo)準(zhǔn)的優(yōu)勢,以及可靠的事務(wù)和并發(fā)性而無需讀取鎖定等許多高級功能。

本指南演示了如何在 Ubuntu 18.04 VPS 實(shí)例上安裝 Postgres,并提供了基本數(shù)據(jù)庫管理的說明。

先決條件

要按照本教程進(jìn)行操作,您需要一個(gè)已經(jīng)按照我們的《Ubuntu 18.04 初始服務(wù)器設(shè)置指南》進(jìn)行配置的 Ubuntu 18.04 服務(wù)器。完成先決條件教程后,您的服務(wù)器應(yīng)該具有一個(gè)具有 sudo 權(quán)限的非 root 用戶和一個(gè)基本防火墻。

步驟 1 — 安裝 PostgreSQL

Ubuntu 的默認(rèn)軟件倉庫中包含了 Postgres 軟件包,因此您可以使用 apt 軟件包管理系統(tǒng)來安裝這些軟件包。

由于這是您在本次會話中第一次使用 apt,請先刷新本地軟件包索引。然后,安裝 Postgres 軟件包以及一個(gè) -contrib 軟件包,該軟件包添加了一些額外的實(shí)用工具和功能:

sudo apt update
sudo apt install postgresql postgresql-contrib

使用 systemctl start 命令確保服務(wù)器正在運(yùn)行:

sudo systemctl start postgresql.service

現(xiàn)在軟件已安裝并運(yùn)行,我們可以了解它的工作原理以及它與您可能使用過的類似數(shù)據(jù)庫管理系統(tǒng)有何不同。

步驟 2 — 使用 PostgreSQL 角色和數(shù)據(jù)庫

默認(rèn)情況下,Postgres 使用一種稱為 角色 的概念來處理身份驗(yàn)證和授權(quán)。在某些方面,這與常規(guī)的 Unix 風(fēng)格帳戶類似,但 Postgres 不區(qū)分用戶和組,而是更傾向于更靈活的術(shù)語 “角色”。

在安裝時(shí),Postgres 被設(shè)置為使用 ident 身份驗(yàn)證,這意味著它將 Postgres 角色與匹配的 Unix/Linux 系統(tǒng)帳戶關(guān)聯(lián)起來。如果一個(gè)角色存在于 Postgres 中,具有相同名稱的 Unix/Linux 用戶名就能夠以該角色登錄。

安裝過程創(chuàng)建了一個(gè)名為 postgres 的用戶帳戶,該帳戶與默認(rèn)的 Postgres 角色關(guān)聯(lián)。要使用 Postgres,您可以登錄到該帳戶。

有幾種方法可以使用該帳戶訪問 Postgres。

切換到 postgres 帳戶

通過輸入以下命令,在服務(wù)器上切換到 postgres 帳戶:

sudo -i -u postgres

現(xiàn)在,您可以立即通過輸入以下命令訪問 Postgres 提示符:

psql

這將使您登錄到 PostgreSQL 提示符,從這里您可以立即與數(shù)據(jù)庫管理系統(tǒng)交互。

通過輸入以下命令退出 PostgreSQL 提示符:

\q

這將帶您回到 postgres Linux 命令提示符。

在不切換帳戶的情況下訪問 Postgres 提示符

在上一個(gè)示例中,您被指示首先切換到 postgres 用戶,然后運(yùn)行 psql 打開 Postgres 提示符。您也可以通過以下單個(gè)命令在 postgres 用戶下使用 sudo 來完成這一步:

sudo -u postgres psql

這將直接將您登錄到 Postgres,而不需要中間的 bash shell。

同樣,您可以通過輸入以下命令退出交互式 Postgres 會話:

\q

許多用例需要多個(gè) Postgres 角色。接下來了解如何配置這些角色。

步驟 3 — 創(chuàng)建新角色

目前,您只配置了數(shù)據(jù)庫中的 postgres 角色。您可以使用 createrole 命令從命令行創(chuàng)建新角色。--interactive 標(biāo)志將提示您輸入新角色的名稱,并詢問是否應(yīng)該具有超級用戶權(quán)限。

如果您已登錄為 postgres 帳戶,可以通過輸入以下命令創(chuàng)建新用戶:

createuser --interactive

如果您更喜歡在不切換到正常帳戶的情況下為每個(gè)命令使用 sudo,則輸入以下命令:

sudo -u postgres createuser --interactive

該腳本將提示您進(jìn)行一些選擇,并根據(jù)您的響應(yīng)執(zhí)行正確的 Postgres 命令以創(chuàng)建符合您規(guī)格的用戶。

首先,提示將要求您指定新角色的名稱。以下示例將角色命名為 sammy,但您可以根據(jù)需要命名:

Enter name of role to add: sammy

接下來,將詢問新角色是否應(yīng)該是超級用戶。在 PostgreSQL 中,超級用戶角色擁有極其廣泛的特權(quán),并且可以繞過幾乎所有權(quán)限檢查。

以下示例指定 sammy 角色應(yīng)該是超級用戶,但是由于超級用戶角色在數(shù)據(jù)庫上具有極大的權(quán)限和控制,您不應(yīng)該輕易授予新角色超級用戶狀態(tài):

Enter name of role to add: sammy
Shall the new role be a superuser? (y/n) y

請注意,只有在以已經(jīng)是超級用戶的角色創(chuàng)建它們時(shí),才能創(chuàng)建新的超級用戶角色。默認(rèn)情況下,postgres 角色是超級用戶。

您可以通過傳遞一些額外的標(biāo)志來獲得更多控制。通過查看 man 頁面來查看選項(xiàng):

man createuser

您的 Postgres 安裝現(xiàn)在有了一個(gè)新角色,但您尚未添加任何數(shù)據(jù)庫。下一節(jié)將描述此過程。

步驟 4 —— 創(chuàng)建新數(shù)據(jù)庫

Postgres 認(rèn)證系統(tǒng)默認(rèn)假設(shè)任何用于登錄的角色都將擁有同名的數(shù)據(jù)庫,并且可以訪問該數(shù)據(jù)庫。

這意味著,如果你在上一節(jié)創(chuàng)建的用戶叫做 sammy,那么該角色將默認(rèn)嘗試連接到一個(gè)也叫“sammy”的數(shù)據(jù)庫。你可以使用 createdb 命令創(chuàng)建相應(yīng)的數(shù)據(jù)庫。

如果你以 postgres 賬戶登錄,你可以輸入如下命令:

createdb sammy

如果你更喜歡在不切換到 postgres 用戶的情況下為每個(gè)命令使用 sudo,你可以輸入:

sudo -u postgres createdb sammy

這種靈活性提供了多種創(chuàng)建數(shù)據(jù)庫的途徑。

步驟 5 —— 使用新角色打開 Postgres 提示符

要使用基于 ident 的認(rèn)證登錄,你需要一個(gè)與你的 Postgres 角色和數(shù)據(jù)庫同名的 Linux 用戶。

如果你沒有匹配的 Linux 用戶可用,你可以使用 adduser 命令創(chuàng)建一個(gè)。你需要在擁有 sudo 權(quán)限的非 root 賬戶下執(zhí)行此操作(也就是說,不要以 postgres 用戶登錄):

sudo adduser sammy

一旦新賬戶可用,你可以切換并連接到數(shù)據(jù)庫,輸入:

sudo -i -u sammy
psql

或者,你可以內(nèi)聯(lián)執(zhí)行:

sudo -u sammy psql

這個(gè)命令將自動(dòng)登錄你,假設(shè)所有組件都已正確配置。

如果你想讓你的用戶連接到不同的數(shù)據(jù)庫,你可以這樣指定數(shù)據(jù)庫:

psql -d postgres

登錄后,你可以通過輸入以下命令檢查當(dāng)前連接信息:

\conninfo
You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".

如果你連接到非默認(rèn)數(shù)據(jù)庫或使用非默認(rèn)用戶,這將非常有用。

步驟 6 —— 創(chuàng)建和刪除表

現(xiàn)在你知道如何連接到 PostgreSQL 數(shù)據(jù)庫系統(tǒng),可以學(xué)習(xí)一些基本的 Postgres 管理任務(wù)。

首先,創(chuàng)建一個(gè)表來存儲一些數(shù)據(jù)。舉個(gè)例子,創(chuàng)建一個(gè)描述一些游樂場設(shè)備的表。

這個(gè)命令的基本語法如下:

CREATE TABLE table_name (
    column_name1 col_type (field_length) column_constraints,
    column_name2 col_type (field_length),
    column_name3 col_type (field_length)
);

這些命令為表命名,然后定義列以及列類型和字段數(shù)據(jù)的最大長度。你還可以為每個(gè)列可選地添加表約束。

你可以在這里了解更多關(guān)于如何在 Postgres 中創(chuàng)建和管理表的信息。

為了演示目的,創(chuàng)建一個(gè)樣本表如下:

CREATE TABLE playground (
    equip_id serial PRIMARY KEY,
    type varchar (50) NOT NULL,
    color varchar (25) NOT NULL,
    location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
    install_date date
);

這些命令將創(chuàng)建一個(gè)用于存儲游樂場設(shè)備清單的表。首先是一個(gè)設(shè)備 ID,它是 serial 類型。這種數(shù)據(jù)類型是自增整數(shù)。你還給這個(gè)列添加了 primary key 約束,這意味著值必須是唯一的且不為空。

對于兩個(gè)列(equip_id 和 install_date),命令沒有指定字段長度。這是因?yàn)槟承┝蓄愋筒恍枰O(shè)置長度,因?yàn)殚L度由類型隱含確定。

接下來的兩個(gè)命令分別為設(shè)備 type 和 color 創(chuàng)建了列,每個(gè)列都不能為空(由應(yīng)用到每個(gè)列的 NOT NULL 約束指定)。在這些命令之后的行創(chuàng)建了一個(gè) location 列,并添加了一個(gè)約束,要求該列的值必須是八個(gè)可能值中的一個(gè)。括號內(nèi)的最后一行創(chuàng)建了一個(gè) date 列,記錄你安裝設(shè)備的日期。

請注意,在 SQL 中,每個(gè)語句必須以分號(;)結(jié)尾。

如果你正確輸入了 CREATE TABLE 操作,它將返回以下輸出:

CREATE TABLE

你可以通過輸入以下命令找到此數(shù)據(jù)庫中的表列表:

\d
                  List of relations
 Schema |          Name           |   Type   | Owner
--------+-------------------------+----------+-------
 public | playground              | table    | sammy
 public | playground_equip_id_seq | sequence | sammy
(2 rows)

你的 playground 表在這里,但還有一個(gè)叫做 playground_equip_id_seq 的類型為 sequence 的東西。這是你給 equip_id 列的 serial 類型的表示。它跟蹤序列中的下一個(gè)數(shù)字,并且會自動(dòng)為此類型的列創(chuàng)建。

如果你只想返回表而不返回序列,你可以輸入:

\dt
          List of relations
 Schema |    Name    | Type  | Owner
--------+------------+-------+-------
 public | playground | table | sammy
(1 row)

步驟 7 —— 向表中添加、查詢和刪除數(shù)據(jù)

現(xiàn)在你已經(jīng)有了一個(gè)表,你可以向其中插入一些數(shù)據(jù)。

舉個(gè)例子,通過調(diào)用你想要添加數(shù)據(jù)的表,命名列,然后為每列提供數(shù)據(jù),來添加一個(gè)滑梯和一個(gè)秋千,就像這樣:

INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2017-04-28');
INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2018-08-16');

在輸入數(shù)據(jù)時(shí)要小心,避免一些常見的問題。首先,不要用引號括住列名,但是你輸入的列值需要加上引號。

另一件需要記住的事情是,不要為 equip_id 列輸入值。這是因?yàn)槊慨?dāng)在表中創(chuàng)建新行時(shí),它會自動(dòng)生成。

通過輸入以下命令來檢索你添加的信息:

SELECT * FROM playground;
 equip_id | type  | color  | location  | install_date
----------+-------+--------+-----------+--------------
        1 | slide | blue   | south     | 2017-04-28
        2 | swing | yellow | northwest | 2018-08-16
(2 rows)

這個(gè)輸出表明你的 equip_id 已經(jīng)成功填充,而且所有其他數(shù)據(jù)都被正確地組織了起來。

如果游樂場上的滑梯壞了,你需要移除它,你也可以通過輸入以下命令從表中移除這一行:

DELETE FROM playground WHERE type = 'slide';

再次查詢表:

SELECT * FROM playground;
 equip_id | type  | color  | location  | install_date
----------+-------+--------+-----------+--------------
        2 | swing | yellow | northwest | 2018-08-16
(1 row)

注意到你的滑梯不再是表中的一部分了。

步驟 8 —— 向表中添加和刪除列

在創(chuàng)建表之后,你可以相對容易地修改它來添加或刪除列。通過輸入以下命令來添加一個(gè)列,用于顯示每個(gè)設(shè)備的最后維護(hù)日期:

ALTER TABLE playground ADD last_maint date;

下次再次查看表信息時(shí),新列將已經(jīng)被添加(但是沒有數(shù)據(jù)被輸入):

SELECT * FROM playground;
 equip_id | type  | color  | location  | install_date | last_maint
----------+-------+--------+-----------+--------------+------------
        2 | swing | yellow | northwest | 2018-08-16   |
(1 row)

要?jiǎng)h除一個(gè)列,你可以輸入一個(gè)與你用來添加 last_maint 列非常相似的 SQL 語句。如果你發(fā)現(xiàn)你的工作人員使用單獨(dú)的工具來跟蹤維護(hù)歷史,你可以通過輸入以下命令來刪除該列:

ALTER TABLE playground DROP last_maint;

這將刪除 last_maint 列以及其中找到的任何值,但會保留所有其他數(shù)據(jù)。

步驟 9 —— 更新表中的數(shù)據(jù)

到目前為止,你已經(jīng)學(xué)會了如何向表中添加記錄以及如何刪除它們,但是本教程還沒有涵蓋如何修改現(xiàn)有條目。

你可以通過查詢你想要的記錄并將列設(shè)置為你希望使用的值來更新現(xiàn)有條目的值。你可以查詢 “swing” 記錄(這將匹配表中的 每個(gè) 秋千)并將其顏色更改為 “red”。如果你給秋千涂了一層油漆,這可能會很有用:

UPDATE playground SET color = 'red' WHERE type = 'swing';

你可以通過再次查詢數(shù)據(jù)來驗(yàn)證操作是否成功:

SELECT * FROM playground;
 equip_id | type  | color | location  | install_date
----------+-------+-------+-----------+--------------
        2 | swing | red   | northwest | 2010-08-16
(1 row)

正如這個(gè)輸出所示,你的秋千現(xiàn)在被注冊為紅色了。

結(jié)論

你現(xiàn)在已經(jīng)在你的 Ubuntu 18.04 服務(wù)器上設(shè)置了 PostgreSQL。然而,還有 更多 關(guān)于 Postgres 的知識等待你去學(xué)習(xí)。

以上就是詳解如何在Ubuntu 18.04上安裝和使用PostgreSQL的詳細(xì)內(nèi)容,更多關(guān)于Ubuntu 18.04安裝使用PostgreSQL的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論