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

3種使用PostgreSQL命令的方式

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù) PostgreSQL
無論你需要的東西簡(jiǎn)單(如一個(gè)購(gòu)物清單)亦或復(fù)雜(如色卡生成器) ,PostgreSQL 命令都能使它變得容易起來。

[[315398]]

無論你需要的東西簡(jiǎn)單(如一個(gè)購(gòu)物清單)亦或復(fù)雜(如色卡生成器) ,PostgreSQL 命令都能使它變得容易起來。

PostgreSQL 入門一文中, 我解釋了如何安裝、設(shè)置和開始使用這個(gè)開源數(shù)據(jù)庫(kù)軟件。不過,使用 PostgreSQL 中的命令可以做更多事情。

例如,我使用 Postgres 來跟蹤我的雜貨店購(gòu)物清單。我的大多數(shù)雜貨店購(gòu)物是在家里進(jìn)行的,而且每周進(jìn)行一次大批量的采購(gòu)。我去幾個(gè)不同的地方購(gòu)買清單上的東西,因?yàn)槊考疑痰甓继峁┨囟ǖ倪x品或質(zhì)量,亦或更好的價(jià)格。最初,我制作了一個(gè) HTML 表單頁(yè)面來管理我的購(gòu)物清單,但這樣無法保存我的輸入內(nèi)容。因此,在想到要購(gòu)買的物品時(shí)我必須馬上列出全部清單,然后到采購(gòu)時(shí)我常常會(huì)忘記一些我需要或想要的東西。

相反,使用 PostgreSQL,當(dāng)我想到需要的物品時(shí),我可以隨時(shí)輸入,并在購(gòu)物前打印出來。你也可以這樣做。

創(chuàng)建一個(gè)簡(jiǎn)單的購(gòu)物清單

首先,輸入 psql 命令進(jìn)入數(shù)據(jù)庫(kù),然后用下面的命令創(chuàng)建一個(gè)表:

  1. Create table groc (item varchar(20), comment varchar(10));

輸入如下命令在清單中加入商品:

  1. insert into groc values ('milk', 'K');
  2. insert into groc values ('bananas', 'KW');

括號(hào)中有兩個(gè)信息(逗號(hào)隔開):前面是你需要買的東西,后面字母代表你要購(gòu)買的地點(diǎn)以及哪些東西是你每周通常都要買的(W)。

因?yàn)?psql 有歷史記錄,你可以按向上鍵在括號(hào)內(nèi)編輯信息,而無需輸入商品的整行信息。

在輸入一小部分商品后,輸入下面命令來檢查前面的輸入內(nèi)容。

  1. Select * from groc order by comment;
  2.  
  3. item | comment
  4. ----------------+---------
  5. ground coffee | H
  6. butter | K
  7. chips | K
  8. steak | K
  9. milk | K
  10. bananas | KW
  11. raisin bran | KW
  12. raclette | L
  13. goat cheese | L
  14. onion | P
  15. oranges | P
  16. potatoes | P
  17. spinach | PW
  18. broccoli | PW
  19. asparagus | PW
  20. cucumber | PW
  21. sugarsnap peas | PW
  22. salmon | S
  23. (18 rows)

此命令按 comment 列對(duì)結(jié)果進(jìn)行排序,以便按購(gòu)買地點(diǎn)對(duì)商品進(jìn)行分組,從而使你的購(gòu)物更加方便。

使用 W 來指明你每周要買的東西,當(dāng)你要清除表單為下周的列表做準(zhǔn)備時(shí),你可以將每周的商品保留在購(gòu)物清單上。輸入:

  1. delete from groc where comment not like '%W';

注意,在 PostgreSQL 中 % 表示通配符(而非星號(hào))。所以,要保存輸入內(nèi)容,需要輸入:

  1. delete from groc where item like 'goat%';

不能使用 item = 'goat%',這樣沒用。

在購(gòu)物時(shí),用以下命令輸出清單并打印或發(fā)送到你的手機(jī):

  1. \o groclist.txt
  2. select * from groc order by comment;
  3. \o

最后一個(gè)命令 \o 后面沒有任何內(nèi)容,將重置輸出到命令行。否則,所有的輸出會(huì)繼續(xù)輸出到你創(chuàng)建的雜貨店購(gòu)物文件 groclist.txt 中。

分析復(fù)雜的表

這個(gè)逐項(xiàng)列表對(duì)于數(shù)據(jù)量小的表來說沒有問題,但是對(duì)于數(shù)據(jù)量大的表呢?幾年前,我?guī)?FreieFarbe.de 的團(tuán)隊(duì)從 HLC 調(diào)色板中創(chuàng)建一個(gè)自由色的色樣冊(cè)。事實(shí)上,任何能想象到的打印色都可按色調(diào)、亮度、濃度(飽和度)來規(guī)定。最終結(jié)果是 HLC Color Atlas,下面是我們?nèi)绾螌?shí)現(xiàn)的。

該團(tuán)隊(duì)向我發(fā)送了具有顏色規(guī)范的文件,因此我可以編寫可與 Scribus 配合使用的 Python 腳本,以輕松生成色樣冊(cè)。一個(gè)例子像這樣開始:

  1. HLC, C, M, Y, K
  2. H010_L15_C010, 0.5, 49.1, 0.1, 84.5
  3. H010_L15_C020, 0.0, 79.7, 15.1, 78.9
  4. H010_L25_C010, 6.1, 38.3, 0.0, 72.5
  5. H010_L25_C020, 0.0, 61.8, 10.6, 67.9
  6. H010_L25_C030, 0.0, 79.5, 18.5, 62.7
  7. H010_L25_C040, 0.4, 94.2, 17.3, 56.5
  8. H010_L25_C050, 0.0, 100.0, 15.1, 50.6
  9. H010_L35_C010, 6.1, 32.1, 0.0, 61.8
  10. H010_L35_C020, 0.0, 51.7, 8.4, 57.5
  11. H010_L35_C030, 0.0, 68.5, 17.1, 52.5
  12. H010_L35_C040, 0.0, 81.2, 22.0, 46.2
  13. H010_L35_C050, 0.0, 91.9, 20.4, 39.3
  14. H010_L35_C060, 0.1, 100.0, 17.3, 31.5
  15. H010_L45_C010, 4.3, 27.4, 0.1, 51.3

這與原始數(shù)據(jù)相比,稍有修改,原始數(shù)據(jù)用制表符分隔。我將其轉(zhuǎn)換成 CSV 格式(用逗號(hào)分割值),我更喜歡其與 Python 一起使用(CSV 文也很有用,因?yàn)樗奢p松導(dǎo)入到電子表格程序中)。

在每一行中,第一項(xiàng)是顏色名稱,其后是其 C、M、Y 和 K 顏色值。 該文件包含 1,793 種顏色,我想要一種分析信息的方法,以了解這些值的范圍。這就是 PostgreSQL 發(fā)揮作用的地方。我不想手動(dòng)輸入所有數(shù)據(jù) —— 我認(rèn)為輸入過程中我不可能不出錯(cuò),而且令人頭痛。幸運(yùn)的是,PostgreSQL 為此提供了一個(gè)命令。

首先用以下命令創(chuàng)建數(shù)據(jù)庫(kù):

  1. Create table hlc_cmyk (color varchar(40), c decimal, m decimal, y decimal, k decimal);

然后通過以下命令引入數(shù)據(jù):

  1. \copy hlc_cmyk from '/home/gregp/HLC_Atlas_CMYK_SampleData.csv' with (header, format CSV);

開頭有反斜杠,是因?yàn)槭褂眉?copy 命令的權(quán)限僅限于 root 用戶和 Postgres 的超級(jí)用戶。在括號(hào)中,header 表示第一行包含標(biāo)題,應(yīng)忽略,CSV 表示文件格式為 CSV。請(qǐng)注意,在此方法中,顏色名稱不需要用括號(hào)括起來。

如果操作成功,會(huì)看到 COPY NNNN,其中 N 表示插入到表中的行數(shù)。

最后,可以用下列命令查詢:

  1. select * from hlc_cmyk;
  2.  
  3. color | c | m | y | k
  4. ---------------+-------+-------+-------+------
  5. H010_L15_C010 | 0.5 | 49.1 | 0.1 | 84.5
  6. H010_L15_C020 | 0.0 | 79.7 | 15.1 | 78.9
  7. H010_L25_C010 | 6.1 | 38.3 | 0.0 | 72.5
  8. H010_L25_C020 | 0.0 | 61.8 | 10.6 | 67.9
  9. H010_L25_C030 | 0.0 | 79.5 | 18.5 | 62.7
  10. H010_L25_C040 | 0.4 | 94.2 | 17.3 | 56.5
  11. H010_L25_C050 | 0.0 | 100.0 | 15.1 | 50.6
  12. H010_L35_C010 | 6.1 | 32.1 | 0.0 | 61.8
  13. H010_L35_C020 | 0.0 | 51.7 | 8.4 | 57.5
  14. H010_L35_C030 | 0.0 | 68.5 | 17.1 | 52.5

所有的 1,793 行數(shù)據(jù)都是這樣的?;叵肫饋恚也荒苷f此查詢對(duì)于 HLC 和 Scribus 任務(wù)是絕對(duì)必要的,但是它減輕了我對(duì)該項(xiàng)目的一些擔(dān)憂。

為了生成 HLC 色譜,我使用 Scribus 為色板頁(yè)面中的 13,000 多種顏色自動(dòng)創(chuàng)建了顏色圖表。

我可以使用 copy 命令輸出數(shù)據(jù):

  1. \copy hlc_cmyk to '/home/gregp/hlc_cmyk_backup.csv' with (header, format CSV);

我還可以使用 where 子句根據(jù)某些值來限制輸出。

例如,以下命令將僅發(fā)送以 H10 開頭的色調(diào)值。

  1. \copy hlc_cmyk to '/home/gregp/hlc_cmyk_backup.csv' with (header, format CSV) where color like 'H10%';

備份或傳輸數(shù)據(jù)庫(kù)或表

我在此要提到的最后一個(gè)命令是 pg_dump,它用于備份 PostgreSQL 數(shù)據(jù)庫(kù),并在 psql 控制臺(tái)之外運(yùn)行。 例如:

  1. pg_dump gregp -t hlc_cmyk > hlc.out
  2. pg_dump gregp > dball.out

第一行是導(dǎo)出 hlc_cmyk 表及其結(jié)構(gòu)。第二行將轉(zhuǎn)儲(chǔ) gregp 數(shù)據(jù)庫(kù)中的所有表。這對(duì)于備份或傳輸數(shù)據(jù)庫(kù)或表非常有用。

要將數(shù)據(jù)庫(kù)或表傳輸?shù)搅硪慌_(tái)電腦(查看 PostgreSQL 入門那篇文章獲取詳細(xì)信息),首先在要轉(zhuǎn)入的電腦上創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),然后執(zhí)行相反的操作。

  1. psql -d gregp -f dball.out

一步創(chuàng)建所有表并輸入數(shù)據(jù)。

總結(jié)

在本文中,我們了解了如何使用 WHERE 參數(shù)限制操作,以及如何使用 PostgreSQL 通配符 。我們還了解了如何將大批量數(shù)據(jù)加載到表中,然后將部分或全部表數(shù)據(jù)輸出到文件,甚至是將整個(gè)數(shù)據(jù)庫(kù)及其所有單個(gè)表輸出。 

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

2021-11-26 11:07:14

cowsay命令Linux

2021-08-10 15:44:37

PostgreSQL表分區(qū)分區(qū)表

2015-05-04 10:20:25

2016-08-19 08:50:12

SparkWordCountreduceByKey

2019-01-31 08:15:38

物聯(lián)網(wǎng)農(nóng)業(yè)IoT

2020-02-10 15:50:18

Spring循環(huán)依賴Java

2017-09-05 10:20:15

2024-01-17 13:56:00

Redis節(jié)點(diǎn)映射關(guān)系

2021-04-01 06:01:10

嵌入式開發(fā)應(yīng)用程序開發(fā)技術(shù)

2021-06-03 09:40:34

Linux命令拷貝

2021-05-31 11:30:43

Linuxsource命令

2020-11-13 06:18:07

JupyterPython數(shù)據(jù)分析

2021-05-16 08:22:19

Linux命令 Source

2010-07-15 14:38:55

Perl eval函數(shù)

2019-08-09 09:00:40

cp命令BashLinux

2010-04-15 15:52:12

Oracle數(shù)據(jù)庫(kù)

2020-07-20 23:58:09

物聯(lián)網(wǎng)IOT物聯(lián)網(wǎng)技術(shù)

2021-05-19 15:02:53

Windows 10微軟更新

2021-03-19 15:56:41

5G5G網(wǎng)絡(luò)邊緣計(jì)算

2020-03-23 21:09:40

人工智能制造業(yè)AI
點(diǎn)贊
收藏

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