好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 在PostgreSQL上安裝并使用擴展模塊的教程

在PostgreSQL上安裝并使用擴展模塊的教程

熱門標簽:怎么去開發一個電銷機器人 南昌呼叫中心外呼系統哪家好 河北便宜電銷機器人軟件 ai電話電話機器人 簡單的智能語音電銷機器人 泗洪正規電話機器人找哪家 怎么申請400熱線電話 小程序智能電話機器人 湖南保險智能外呼系統產品介紹

安裝模塊

注意: 我的運行環境是 Ubuntu 10.04 和 PostgreSQL 8.4

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

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

然后我們創建一個名為 module_test 的數據庫:
 

su postgres
createdb module_test

然后我們將模塊 chkpass, fuzzystrmatch, isn 和 hstore 應用到 module_test 數據庫,執行下面命令即可:
 

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

接下來,我們來看看每個模塊是如何使用的。
 
使用 chkpass

chkpass 模塊引入一個新的數據類型 “chkpass” 這個類型用來存儲一個加密的字段,例如密碼。使用方法可以從下面的 SQL 里看到,存入 chkpass 字段的字符串會自動進行加密:

 

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

然后我們可以通過下面的SQL進行身份認證:
 

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

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

該模塊提供的函數包括:soundx(), difference(), levenshtein() 和 metaphone() 。soundx() 和 metaphone() 是語音算法,將文本字符串轉成基于發音的代碼字符串。而 difference() 和 levenshtein() 則返回數值代表兩個輸入字符串的相似度。

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

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

該查詢返回 2,很顯然。

metaphone() 函數需要兩個參數,一個是文本字符串,另外一個是輸出代碼的最大長度的:
 

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

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

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

這意味著兩個字符串發音類似。

fuzzystrmatch 用在網站實現搜索功能上是非常有用的,而且可用于實現拼寫檢查和錯誤關鍵字糾正,相當于是 Google 上的“Did you mean...”

使用 isn

該模塊提供了存儲國際標準數值的數據類型,例如 International Standard Book Numbers (ISBN), International Standard Music Numbers (ISMN), International Standard Serial Numbers (ISSN), Universal Product Codes (UPC), 等等。同時提供了校驗函數、類型轉換函數等等。

讓我們來測試存儲圖書信息:
 

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

INSERT 語句將會執行錯誤,因為輸入的字符串不是一個有效的 ISBN 號,而下面的語句就可以正確執行:
 

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

如果要將一個10位的 ISBN 轉成 13 位的,可以使用 isbn13() 函數:

 

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

 
使用 hstore

你肯定已經聽到很多關于 NoSQL 以及 key-value 數據庫的介紹,使用 hstore 模塊可以讓 PostgreSQL 具備 key-value 存儲的功能。

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

我們來創建一個使用 hstore 類型的表,并往表插入一些數據:
 

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' ));

你可以創建你自己的 key ,例如 “height”, “favourite_book” 等等,而 || 運算符用于級聯并列操作。

現在我們已經有一個表和少量測試數據,接下來看看怎么做查詢、更改和刪除操作,假設我們要查詢 city 為 bangalore 的數據,可以使用如下SQL語句:
 

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

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

 

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

這里的 ::integer 用于將文本數據轉成整數,以便可以使用數學函數。

要根據姓名進行排序,方法是:

 

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

將所有城市更改為 delhi :
 

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

然后刪除 age 這個鍵:

 

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

或者刪除名為 amit 的記錄:
 

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

雖然這不是一個真正的 key-value 存儲服務器,但 hstore 還是提供了做為 NoSQL 數據庫足夠的靈活性。

其他有用的模塊

這里還有幾個你可能會用到的模塊:

  •     Pgcrypto 提供了哈希和加密函數,支持 SHA, MD5, Blowfish, AES 等算法
  •     Citext 增加了大小寫敏感的文本數據類型,數據使用小寫存儲
  •     Uuid-ossp 提供了全局唯一標示符的函數
  •     Pg_trgm 增加了基于 trigram 匹配的字符串查找函數

您可能感興趣的文章:
  • PostgreSQL安裝、配置及簡單使用方法
  • CentOS7 PostgreSQL安裝、配置、使用詳解
  • Linux CentOS 7源碼編譯安裝PostgreSQL9.5
  • Linux CentOS 7安裝PostgreSQL9.3圖文教程
  • Mac OS上安裝PostgreSQL的教程
  • FREEBSD安裝POSTGRESQL筆記
  • Debian中PostgreSQL數據庫安裝配置實例
  • Windows下PostgreSQL安裝圖解
  • 用一整天的時間安裝postgreSQL NTFS權限
  • PostgreSQL 安裝和簡單使用
  • Windows PostgreSQL 安裝圖文教程
  • PostgreSQL8.3.3安裝方法
  • windows PostgreSQL 9.1 安裝詳細步驟

標簽:柳州 瀘州 淮安 景德鎮 江蘇 威海 那曲 荊門

巨人網絡通訊聲明:本文標題《在PostgreSQL上安裝并使用擴展模塊的教程》,本文關鍵詞  在,PostgreSQL,上,安裝,并,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在PostgreSQL上安裝并使用擴展模塊的教程》相關的同類信息!
  • 本頁收集關于在PostgreSQL上安裝并使用擴展模塊的教程的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 男女抽搐视频| 老师好爽啊| 国产91??丝袜在线播动放| 好紧好湿太硬了太爽啦| 美女脱内衣胸罩和内裤和衣服裤子| 国产最爽的乱淫视频国语对白| 农村妇女性混乱| 和2个男人3p好爽| 久久成人激情视频| 色吊丝在线观看国产| 久久久久夜夜夜精品国产| 欧美精品一区二区毛卡片 | 无码任你躁久久久久久老妇APP| 51激情精品视频在线观看| 欧美精品videosfree720| 日本在线免费看| 海角社真实XXⅩ人伦| 韩国午夜理伦三级2018| 国产午夜福三级在线播放| 精品亚洲成a人在线播放| 日本一级婬片A片温柔乡 | 法国人视频xxx69| 日韩一区在线视频| 我要看18毛片| bdsmcbt另类系列| 男的操男的| 日本韩国A片| 快C我啊?用力?嗯?轻一点文案| 亚洲成人手机在线| 性饥饿的女邻居阿?5| 玖玖资源站365每天更新| 免费看男阳茎r桶进女人下部| heyzo里中结衣在线播放| 国产资源无限好片| 俺也去狠狠色久九九精品| jlzzz18免费观看老师| nxgx日本老师| 被囚禁的圣女| 最新在线观看精品国产福利片| 女朋友的妺妺2HD中字| 国产精品日本无码久久一老A|