自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PostgreSQL數(shù)據(jù)庫入門

數(shù)據(jù)庫 其他數(shù)據(jù)庫 PostgreSQL
本文帶你了解如何安裝、設(shè)置、創(chuàng)建和開始使用 PostgreSQL 數(shù)據(jù)庫。

PostgreSQL數(shù)據(jù)庫入門

安裝、設(shè)置、創(chuàng)建和開始使用 PostgreSQL 數(shù)據(jù)庫。

每個(gè)人或許都有需要在數(shù)據(jù)庫中保存的東西。即使你執(zhí)著于使用紙質(zhì)文件或電子文件,它們也會(huì)變得很麻煩。紙質(zhì)文檔可能會(huì)丟失或混亂,你需要訪問的電子信息可能會(huì)隱藏在段落和頁面的深處。

在我從事醫(yī)學(xué)工作的時(shí)候,我使用 PostgreSQL 來跟蹤我的住院患者名單并提交有關(guān)住院患者的信息。我將我的每日患者名單打印在口袋里,以便快速了解患者房間、診斷或其他細(xì)節(jié)的任何變化并做出快速記錄。

我以為一切沒問題,直到去年我妻子決定買一輛新車,我“接手”了她以前的那輛車。她保留了汽車維修和保養(yǎng)服務(wù)收據(jù)的文件夾,但隨著時(shí)間的流逝,它變得雜亂。與其花時(shí)間篩選所有紙條以弄清楚什么時(shí)候做了什么,我認(rèn)為 PostgreSQL 將是更好的跟蹤此信息的方法。

安裝 PostgreSQL

自上次使用 PostgreSQL 以來已經(jīng)有一段時(shí)間了,我已經(jīng)忘記了如何使用它。實(shí)際上,我甚至沒有在計(jì)算機(jī)上安裝它。安裝它是第一步。我使用 Fedora,因此在控制臺(tái)中運(yùn)行:

  1. dnf list postgresql*

請(qǐng)注意,你無需使用 sudo 即可使用 list 選項(xiàng)。該命令返回了很長的軟件包列表??戳搜酆螅覜Q定只需要三個(gè):postgresql、postgresql-server 和 postgresql-docs。

為了了解下一步需要做什么,我決定查看 PostgreSQL 文檔。文檔參考內(nèi)容非常豐富,實(shí)際上,豐富到令人生畏。幸運(yùn)的是,我發(fā)現(xiàn)我在升級(jí) Fedora 時(shí)曾經(jīng)做過的一些筆記,希望有效地導(dǎo)出數(shù)據(jù)庫,在新版本上重新啟動(dòng) PostgreSQL,以及導(dǎo)入舊數(shù)據(jù)庫。

設(shè)置 PostgreSQL

與大多數(shù)其他軟件不同,你不能只是安裝好 PostgreSQL 就開始使用它。你必須預(yù)先執(zhí)行兩個(gè)基本步驟:首先,你需要設(shè)置 PostgreSQL,第二,你需要啟動(dòng)它。你必須以 root 用戶身份執(zhí)行這些操作(sudo 在這里不起作用)。

要設(shè)置它,請(qǐng)輸入:

  1. postgresql-setup initdb

這將確定 PostgreSQL 數(shù)據(jù)庫在計(jì)算機(jī)上的位置。然后(仍為 root)輸入以下兩個(gè)命令:

  1. systemctl start postgresql.service
  2. systemctl enable postgresql.service

第一個(gè)命令為當(dāng)前會(huì)話啟動(dòng) PostgreSQL(如果你關(guān)閉機(jī)器,那么 PostgreSQL 也將關(guān)閉)。第二個(gè)命令使 PostgreSQL 在隨后的重啟中自動(dòng)啟動(dòng)。

創(chuàng)建用戶

PostgreSQL 正在運(yùn)行,但是你仍然不能使用它,因?yàn)槟氵€沒有用戶。為此,你需要切換到特殊用戶 postgres。當(dāng)你仍以 root 身份運(yùn)行時(shí),輸入:

  1. su postgres

由于你是以 root 的身份執(zhí)行此操作的,因此無需輸入密碼。root 用戶可以在不知道密碼的情況下以任何用戶身份操作;這就是使其強(qiáng)大而危險(xiǎn)的原因之一。

現(xiàn)在你就是 postgres 了,請(qǐng)運(yùn)行下面兩個(gè)命令,如下所示創(chuàng)建用戶(創(chuàng)建用戶 gregp):

  1. createuser gregp
  2. createdb gregp

你可能會(huì)看到錯(cuò)誤消息,如:Could not switch to /home/gregp。這只是意味著用戶 postgres不能訪問該目錄。盡管如此,你的用戶和數(shù)據(jù)庫已創(chuàng)建。接下來,輸入 exit 并按回車兩次,這樣就回到了原來的用戶下(root)。

設(shè)置數(shù)據(jù)庫

要開始使用 PostgreSQL,請(qǐng)?jiān)诿钚休斎?psql。你應(yīng)該在每行左側(cè)看到類似 gregp=> 的內(nèi)容,以顯示你使用的是 PostgreSQL,并且只能使用它理解的命令。你自動(dòng)獲得一個(gè)數(shù)據(jù)庫(我的名為 gregp),它里面完全沒有內(nèi)容。對(duì) PostgreSQL 來說,數(shù)據(jù)庫只是一個(gè)工作空間。在空間內(nèi),你可以創(chuàng)建。表包含變量列表,而表中的每個(gè)變量是構(gòu)成數(shù)據(jù)庫的數(shù)據(jù)。

以下是我設(shè)置汽車服務(wù)數(shù)據(jù)庫的方式:

  1. CREATE TABLE autorepairs (
  2.         date            date,
  3.         repairs         varchar(80),
  4.         location        varchar(80),
  5.         cost            numeric(6,2)
  6. );

我本可以在一行內(nèi)輸入,但為了更好地說明結(jié)構(gòu),并表明 PostgreSQL 不會(huì)解釋制表符和換行的空白,我分成了多行。字段包含在括號(hào)中,每個(gè)變量名和數(shù)據(jù)類型與下一個(gè)變量用逗號(hào)分隔(最后一個(gè)除外),命令以分號(hào)結(jié)尾。所有命令都必須以分號(hào)結(jié)尾!

第一個(gè)變量名是 date,它的數(shù)據(jù)類型也是 date,這在 PostgreSQL 中沒關(guān)系。第二個(gè)和第三個(gè)變量 repairslocation 都是 varchar(80) 類型,這意味著它們可以是最多 80 個(gè)任意字符(字母、數(shù)字等)。最后一個(gè)變量 cost 使用 numeric 類型。括號(hào)中的數(shù)字表示最多有六位數(shù)字,其中兩位是小數(shù)。最初,我嘗試了 real 類型,這將是一個(gè)浮點(diǎn)數(shù)。real 類型的問題是作為數(shù)據(jù)類型在使用時(shí),在遇到 WHERE 子句,類似 WHERE cost = 0 或其他任何特定數(shù)字。由于 real 值有些不精確,因此特定數(shù)字將永遠(yuǎn)不會(huì)匹配。

輸入數(shù)據(jù)

接下來,你可以使用 INSERT INTO 命令添加一些數(shù)據(jù)(在 PostgreSQL 中稱為):

  1. INSERT INTO autorepairs VALUES ('2017-08-11', 'airbag recall', 'dealer', 0);

請(qǐng)注意,括號(hào)構(gòu)成了一個(gè)值的容器,它必須以正確的順序,用逗號(hào)分隔,并在命令末尾加上分號(hào)。datevarchar(80) 類型的值必須包含在單引號(hào)中,但數(shù)字值(如 numeric)不用。作為反饋,你應(yīng)該會(huì)看到:

  1. INSERT 0 1

與常規(guī)終端會(huì)話一樣,你會(huì)有輸入命令的歷史記錄,因此,在輸入后續(xù)行時(shí),通??梢园聪蛏霞^鍵來顯示最后一個(gè)命令并根據(jù)需要編輯數(shù)據(jù),從而節(jié)省大量時(shí)間。

如果出了什么問題怎么辦?使用 UPDATE 更改值:

  1. UPDATE autorepairs SET date = '2017-11-08' WHERE repairs = 'airbag recall';

或者,也許你不再需要表中的行。使用 DELETE

  1. DELETE FROM autorepairs WHERE repairs = 'airbag recall';

這將刪除整行。

最后一件事:即使我在 PostgreSQL 命令中一直使用大寫字母(在大多數(shù)文檔中也這么做),你也可以用小寫字母輸入,我也經(jīng)常如此。

輸出數(shù)據(jù)

如果你想展示數(shù)據(jù),使用 SELECT

  1. SELECT * FROM autorepairs ORDER BY date;

沒有 ORDER BY 的話,行將不管你輸入的內(nèi)容來顯示。例如,以下就是我終端中輸出的我的汽車服務(wù)數(shù)據(jù):

  1. SELECT date, repairs FROM autorepairs ORDER BY date;
  2.  
  3.     date   |                             repairs                             
  4. -----------+-----------------------------------------------------------------
  5. 2008-08-08 | oil change, air filter, spark plugs
  6. 2011-09-30 | 35000 service, oil change, rotate tires/balance wheels
  7. 2012-03-07 | repl battery
  8. 2012-11-14 | 45000 maint, oil/filter
  9. 2014-04-09 | 55000 maint, oil/filter, spark plugs, air/dust filters
  10. 2014-04-21 | replace 4 tires
  11. 2014-04-21 | wheel alignment
  12. 2016-06-01 | 65000 mile service, oil change
  13. 2017-05-16 | oil change, replce oil filt housing
  14. 2017-05-26 | rotate tires
  15. 2017-06-05 | air filter, cabin filter,spark plugs
  16. 2017-06-05 | brake pads and rotors, flush brakes
  17. 2017-08-11 | airbag recall
  18. 2018-07-06 | oil/filter change, fuel filter, battery svc
  19. 2018-07-06 | transmission fl, p steering fl, rear diff fl
  20. 2019-07-22 | oil & filter change, brake fluid flush, front differential flush
  21. 2019-08-20 | replace 4 tires
  22. 2019-10-09 | replace passenger taillight bulb
  23. 2019-10-25 | replace passenger taillight assembly
  24. (19 rows)

要將此發(fā)送到文件,將輸出更改為:

  1. \o autorepairs.txt

然后再次運(yùn)行 SELECT 命令。

退出 PostgreSQL

最后,在終端中退出 PostgreSQL,輸入:

  1. quit

或者它的縮寫版:

  1. \q

雖然這只是 PostgreSQL 的簡要介紹,但我希望它展示了將數(shù)據(jù)庫用于這樣的簡單任務(wù)既不困難也不費(fèi)時(shí)。 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2011-03-24 14:40:29

PostgreSQL數(shù)管理

2024-01-18 08:00:00

PostgreSQLPgvector

2023-12-19 09:36:35

PostgreSQL數(shù)據(jù)庫開源

2011-02-24 15:04:00

PostgreSQL數(shù)據(jù)庫psql

2023-12-13 11:23:15

2024-03-04 10:48:15

PostgreSQL數(shù)據(jù)庫

2017-10-13 15:06:18

數(shù)據(jù)庫PostgreSQL特性

2010-05-26 10:15:11

MySQL數(shù)據(jù)庫

2022-10-12 13:33:25

PostgreSQL數(shù)據(jù)庫

2010-06-13 11:29:51

MySQL數(shù)據(jù)庫

2010-03-02 15:16:23

Ubuntu Post

2025-04-02 08:30:00

IvorySQLOraclePostgreSQL

2011-03-25 13:08:19

PostgreSQL數(shù)

2017-06-26 08:28:41

PostgreSQL數(shù)據(jù)庫單機(jī)

2019-02-15 14:59:09

華為云

2023-11-29 09:53:29

數(shù)據(jù)庫遷移SQL Server

2020-09-03 11:35:22

SQLiteMySQLPostgreSQL

2011-07-26 14:34:28

openSUSEpostgresql

2010-06-12 14:40:28

2021-01-05 15:55:12

數(shù)據(jù)庫DB-EnginesSQL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)