在安装和使用扩展模块对PostgreSQL教程

在安装和使用扩展模块对PostgreSQL教程
安装模块

注:我的运行环境是Ubuntu 10.04和PostgreSQL 8.4

首先安装PostgreSQL的contrib包并重新启动数据库服务器,然后检查目录是否有一些可用的模块包括:

sudo apt-get install PostgreSQL的贡献
sudo / /初始化等。D / postgresql-8.4重启
CD / usr /分享/ PostgreSQL / 8.4 / /
LS
然后我们创建一个数据库,称为module_test:

苏Postgres
createdb module_test
然后我们应用模块chkpass,fuzzystrmatch,还和汇存到module_test数据库执行以下命令

module_test psql D F chkpass.sql
module_test psql D F fuzzystrmatch.sql
module_test psql D F isn.sql
module_test psql D F hstore.sql
接下来,让我们看看每个模块是如何使用的。
使用chkpass

的chkpass模块介绍了一种新的数据类型,chkpass型,主要用于存储加密领域,如密码,使用方法,你可以看到下面的SQL,存储在chkpass字段的字符串将被自动加密:

创建表的账户用户名,密码chkpass varchar(100));
插入账户(用户名,密码)值('user1 ','pass1);
插入账户(用户名,密码)值('user2 ','pass2);
然后,我们可以用以下SQL进行身份验证:

select count(*)的账户,用户名密码= = 'user1'and 'pass1
=运算符使用EQ(column_name、文本)的方法,以测试是否相等chkpass模块提供。Chkpass用地穴()函数UNIX,所以加密效果相对较弱。该函数只加密字符串的前8位,只要8个相同的字符串被认为是相等的。因此,这是不推荐的chkpass模块可用于实际生产环境,和pgcrypto模块推荐。
使用fuzzystrmatch

提供的功能模块包括:soundx()(),()Levenshtein()的差异,并和(),Soundx()和()和语音算法,把一个文本字符串为一个基于语音编码的字符串。差()和Levenshtein()返回表示两个输入字符串的值之间的相似性。

让我们在编辑一看()和语音()函数:

选择Levenshtein('foodlets ','booklets);
显然,该查询返回2。

metaphone()函数需要两个参数,一个是文本字符串,而另一个是输出代码的最大长度:

选择和('foodlets ',6);
选择和('fudlets ',6);
如果你试图把两个字符串的编辑距离,则返回0:

选择Levenshtein('ftlts ','ftlts);
这意味着这两个字符串的发音相似。

Fuzzystrmatch是非常有用的搜索功能的网站,它可以用来实现拼写检查和校正误差的关键,这就相当于你在抛媚眼。

使用的是

该模块提供了数据类型存储国际标准,如国际标准书号(ISBN),国际标准的音乐数量(ISMN)、国际ISMN,书号,等等。同时,检查等功能,提供了类型转换函数。

让我们测试图书信息的存储:

创建表的书(编号ISBN13码,标题varchar(100))
插入到图书中(数字
INSERT语句将执行一个错误因为输入字符串是不是一个有效的ISBN号,和下面的语句可以正确执行。

插入到图书中(数字
如果你想把一个10位的编号为13位,你可以用ISBN13码()函数:

插入到图书中(数字
用汇存

你一定听说过很多关于NoSQL数据库和核心价值。用汇存模块可以使PostgreSQL有关键值存储功能。

想象一下你在处理一种形式。你不知道的名字和格力柱型,与汇存可以解决你的问题。汇存以键值作为文本存储的值可以为零,但关键不允许。

让我们创建一个表使用汇存式和插入一些数据表:

创建表kv_data(ID的整数,数据汇存)
插入kv_data值
(1,汇存('name','amit)| |汇存('城市','bangalore ')),
(2,汇存('name','raghu)| |汇存(年龄,12'26)),
(3,汇存('name','ram)| |汇存(时代','28'));
你可以创建你自己的钥匙,如身高,favourite_book等等,和| |算子的串并联操作

现在我们有了一张表和少量的测试数据。接下来,我们将了解如何进行查询、更改和删除操作。假设我们想为班加罗尔市的数据查询,我们可以使用下面的SQL语句。

SELECT * FROM kv_data数据-> '城市' = 'bangalore
为了得到表中的平均年龄,可以使用以下语句:

选择AVG((数据->时代)::整数)的年龄从kv_data;
这里::整数用于将文本数据转换成整数,这样就可以使用数学函数。

按名称排序,方法是:

SELECT * FROM kv_data订单数据-> 'name'desc
把所有城市都改成德令哈市:

更新kv_data集数据=数据('城市' = 'delhi)| |;
然后删除年龄键:

更新kv_data集数据=删除(数据时代)
或删除记录叫Amit:

删除从kv_data数据-> 'name' = 'amit
虽然这不是一个真正的键值存储服务器,汇存提供了足够的灵活性,做一个NoSQL数据库。

其他有用的模块

这里有几个模块,您可以使用:

pgcrypto提供哈希和加密功能支持的算法如MD5,SHA,河豚、AES等
citext增加了区分大小写的文本数据类型和数据存储在小写的存储
Uuid ossp提供了一个全局唯一标识符的功能
pg_trgm增加基于trigram匹配字符串的查找功能
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部