欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

怎么在PostgreSQL中安裝擴(kuò)展模塊-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)怎么在PostgreSQL中安裝擴(kuò)展模塊,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、重慶小程序開(kāi)發(fā)公司、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開(kāi)發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十載以來(lái),已經(jīng)為成百上千玻璃鋼雕塑各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)。現(xiàn)在,服務(wù)的成百上千客戶與我們一路同行,見(jiàn)證我們的成長(zhǎng);未來(lái),我們一起分享成功的喜悅。

安裝模塊

首先安裝 postgresql-contrib 包并重啟數(shù)據(jù)庫(kù)服務(wù)器,然后檢查 contrib 目錄看是否包含一些可用模塊:



sudo apt-get install postgresql-contrib
sudo /etc/init.d/postgresql-8.4 restart
cd /usr/share/postgresql/8.4/contrib/
ls

然后我們創(chuàng)建一個(gè)名為 module_test 的數(shù)據(jù)庫(kù):


su postgres
createdb module_test

然后我們將模塊 chkpass, fuzzystrmatch, isn 和 hstore 應(yīng)用到 module_test 數(shù)據(jù)庫(kù),執(zhí)行下面命令即可:


psql -d module_test -f chkpass.sql
psql -d module_test -f fuzzystrmatch.sql
psql -d module_test -f isn.sql
psql -d module_test -f hstore.sql

接下來(lái),我們來(lái)看看每個(gè)模塊是如何使用的。
 
使用 chkpass

chkpass 模塊引入一個(gè)新的數(shù)據(jù)類型 “chkpass” 這個(gè)類型用來(lái)存儲(chǔ)一個(gè)加密的字段,例如密碼。使用方法可以從下面的 SQL 里看到,存入 chkpass 字段的字符串會(huì)自動(dòng)進(jìn)行加密:


CREATE TABLE accounts (username varchar (100), password chkpass);
INSERT INTO accounts(username, "password" ) VALUES ( 'user1' , 'pass1' );
INSERT INTO accounts(username, "password" ) VALUES ( 'user2' , 'pass2' );

然后我們可以通過(guò)下面的SQL進(jìn)行身份認(rèn)證:


SELECT count (*) from accounts where username= 'user1' and password = 'pass1'

其中 = 操作符使用了 eq(column_name, text) 方法,該方法由 chkpass 模塊提供用于測(cè)試是否相等。chkpass 使用 Unix 的 crypt() 函數(shù),因此加密效果比較弱,該函數(shù)只對(duì)字符串的前8位進(jìn)行加密,只要前8位相同的字符串就被認(rèn)為是相等的。因此不建議在實(shí)際生產(chǎn)環(huán)境中使用 chkpass 模塊,建議使用 pgcrypto 模塊。
 
使用 fuzzystrmatch

該模塊提供的函數(shù)包括:soundx(), difference(), levenshtein() 和 metaphone() 。soundx() 和 metaphone() 是語(yǔ)音算法,將文本字符串轉(zhuǎn)成基于發(fā)音的代碼字符串。而 difference() 和 levenshtein() 則返回?cái)?shù)值代表兩個(gè)輸入字符串的相似度。

讓我們先看看 levenshtein() 和 metaphone() 函數(shù):


SELECT levenshtein( 'foodlets' , 'booklets' );

該查詢返回 2,很顯然。

metaphone() 函數(shù)需要兩個(gè)參數(shù),一個(gè)是文本字符串,另外一個(gè)是輸出代碼的較大長(zhǎng)度的:


SELECT metaphone( 'foodlets' , 6);
SELECT metaphone( 'fudlets' , 6);

如果你試圖獲取兩個(gè)字符串的 Levenshtein 距離,那將返回0:


SELECT levenshtein( 'FTLTS' , 'FTLTS' );

這意味著兩個(gè)字符串發(fā)音類似。

fuzzystrmatch 用在網(wǎng)站實(shí)現(xiàn)搜索功能上是非常有用的,而且可用于實(shí)現(xiàn)拼寫檢查和錯(cuò)誤關(guān)鍵字糾正,相當(dāng)于是 Google 上的“Did you mean...”

使用 isn

該模塊提供了存儲(chǔ)國(guó)際標(biāo)準(zhǔn)數(shù)值的數(shù)據(jù)類型,例如 International Standard Book Numbers (ISBN), International Standard Music Numbers (ISMN), International Standard Serial Numbers (ISSN), Universal Product Codes (UPC), 等等。同時(shí)提供了校驗(yàn)函數(shù)、類型轉(zhuǎn)換函數(shù)等等。

讓我們來(lái)測(cè)試存儲(chǔ)圖書信息:


CREATE TABLE books(number isbn13, title varchar (100))
INSERT INTO books( "number" , title) VALUES ( '978-03' , 'Rework' );

INSERT 語(yǔ)句將會(huì)執(zhí)行錯(cuò)誤,因?yàn)檩斎氲淖址皇且粋€(gè)有效的 ISBN 號(hào),而下面的語(yǔ)句就可以正確執(zhí)行:


INSERT INTO books( "number" , title) VALUES ( '978-0307463746' , 'Rework' )

如果要將一個(gè)10位的 ISBN 轉(zhuǎn)成 13 位的,可以使用 isbn13() 函數(shù):


INSERT INTO books( "number" , title) VALUES (isbn13( '0307463745' ), 'Rework' )

 
使用 hstore

你肯定已經(jīng)聽(tīng)到很多關(guān)于 NoSQL 以及 key-value 數(shù)據(jù)庫(kù)的介紹,使用 hstore 模塊可以讓 PostgreSQL 具備 key-value 存儲(chǔ)的功能。

想象你正在處理一個(gè)表格,你對(duì)表格力列頭的名稱和類型處理沒(méi)有任何思路,而 hstore 就可以解決你的問(wèn)題,hstore 將 key 和 value 都作為文本存儲(chǔ),值可以為 NULL,但 key 不允許。

我們來(lái)創(chuàng)建一個(gè)使用 hstore 類型的表,并往表插入一些數(shù)據(jù):


CREATE TABLE kv_data( id integer , data hstore)
INSERT into kv_data values
(1, hstore( 'name' , 'amit' ) || hstore( 'city' , 'bangalore' )),
(2, hstore( 'name' , 'raghu' ) || hstore( 'age' , '26' )),
(3, hstore( 'name' , 'ram' ) || hstore( 'age' , '28' ));

你可以創(chuàng)建你自己的 key ,例如 “height”, “favourite_book” 等等,而 || 運(yùn)算符用于級(jí)聯(lián)并列操作。

現(xiàn)在我們已經(jīng)有一個(gè)表和少量測(cè)試數(shù)據(jù),接下來(lái)看看怎么做查詢、更改和刪除操作,假設(shè)我們要查詢 city 為 bangalore 的數(shù)據(jù),可以使用如下SQL語(yǔ)句:


SELECT * from kv_data where data-> 'city' = 'bangalore'

要獲取表中的平均年齡可以使用如下語(yǔ)句:


SELECT avg ((data-> 'age' ):: integer ) age from kv_data;

這里的 ::integer 用于將文本數(shù)據(jù)轉(zhuǎn)成整數(shù),以便可以使用數(shù)學(xué)函數(shù)。

要根據(jù)姓名進(jìn)行排序,方法是:


SELECT * from kv_data order by data-> 'name' desc

將所有城市更改為 delhi :


UPDATE kv_data SET data = data || ( 'city' => 'delhi' );

然后刪除 age 這個(gè)鍵:


UPDATE kv_data set data = delete (data, 'age' )

或者刪除名為 amit 的記錄:


DELETE from kv_data where data-> 'name' = 'amit'

雖然這不是一個(gè)真正的 key-value 存儲(chǔ)服務(wù)器,但 hstore 還是提供了做為 NoSQL 數(shù)據(jù)庫(kù)足夠的靈活性。

上述就是小編為大家分享的怎么在PostgreSQL中安裝擴(kuò)展模塊了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


本文名稱:怎么在PostgreSQL中安裝擴(kuò)展模塊-創(chuàng)新互聯(lián)
本文URL:http://www.chinadenli.net/article44/dgshee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名電子商務(wù)ChatGPT營(yíng)銷型網(wǎng)站建設(shè)微信公眾號(hào)網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司