本文主要是通过简单的例子演示一下如何在Postgresql里面写Python代码。

1.在Postgresql的机器上安装Python。(这貌似是废话)

2.检查Postgresql的安装目录下面的 lib 文件夹。

检查有没有 plpython.dll 或者 plpython2.dll。 这是Postgresql 调用Python 2.X的DLL文件,在新版的Postgresql 9.X中不一定会有,这个真有点奇怪。自带的只有一个plpython3.dll, 这是针对Python 3.X的,鉴于现在 3.X的Python还不通用,主流的应用还是使用Python 2.X。如果Postgresql里面没有,可以通过以下链接下载这个文件,并且放到 lib 下面:

3.安装pl/python语言。

在需要添加Python语言支持的数据库里面,运行以下SQL语句:

CREATE PROCEDURAL LANGUAGE plpythonu;

如果SQL运行正常返回,没有报错,就证明pl/python语言模块已经正确安装了。如果有错,请根据错误提示纠正。

4.创建第一个包含Python代码的方法。

现在我们来创建一个方法,这个简单的方法的作用是判断某一个数值是奇数还是偶数:

CREATE OR REPLACE FUNCTION iseven(integer)

RETURNS BOOLEAN AS

$BODY$

t = args[0]

return t%2 == 0

$BODY$

LANGUAGE 'plpythonu' VOLATILE

COST 100;

可以看到,这其实是一个普通不过的SQL函数定义,只不过Python的代码是夹在两个$BODY$中间。函数的参数是通过args这个数组来获得,然后Python代码返回与SQL函数定义相一致的结果,在这里还可以使用Python的 if ,for ,while ,import等。让我们执行这一段SQL,之后你就可以看到,在数据库的Shemas->public->Functions下面有一个叫 iseven 的函数,这就是我们刚生成的新方法。

5.使用我们新定义的函数。

到这一步,其实就跟普通的SQL函数没区别了,我们可以试着找一些是整数型的字段传给这个新函数:

select * from sometable where iseven(id);

总结:以上例子只是简单的介绍了一下如何在postgresql里面使用Python来扩展。以后有更深入的探讨,再分享给大家。

谢谢

python深入和扩展_用Python来扩展Postgresql(一)相关推荐

  1. microbit python扩展_【micro:bit扩展】如何用慧编程扩展设计器为 micro:bit 编写扩展...

    [micro:bit扩展]如何用慧编程扩展设计器为 micro:bit 编写扩展 慧编程-microbit 设备简介 慧编程支持 micro:bit 硬件,打开慧编程,选择硬件栏,点击添加,添加mic ...

  2. python出现的意义_[转]Python中下划线以及命名空间的意义

    Python 用下划线作为变量前缀和后缀指定特殊变量/方法. 主要存在四种情形 1. 1. object # public 2. __object__ # special, python system ...

  3. python大数据免费_用python做大数据

    不学Python迟早会被淘汰?Python真有这么好的前景? 最近几年Python编程语言在国内引起不小的轰动,有超越Java之势,本来在美国这个编程语言就是最火的,应用的非常非常的广泛,而Pytho ...

  4. python中 什么意思_请问python中%代表什么意思?

    婷婷同学_ 1.格式符例如:a = 'test'print 'it is a %s' %(a)打印的结果就是 it is a test2.单独看%,是一个运算符号,求余数.例如:求模运算,相当于mod ...

  5. python大牛 关东升_《Python从小白到大牛》第4章 Python语法基础

    本章主要为大家介绍Python的一些语法,其中包括标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 标识符和关键字 任何一种计算机语言都离不开标识符和关键字,因此下面将详细介绍Pyth ...

  6. python源码学习_【Python学习】Python源码阅读(一)

    最近想读读Python源码,任何东西学习方法基本都是一样的,先从总体框架进行了解,再从自己侧重的方面逐步深入. 1. Python总体架构 左边是Python提供的大量的模块.库以及用户自定义的模块. ...

  7. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  8. python列表添加元组_【Python爬虫】列表、元组、集合练习

    列表: pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值. list.append(obj) 在列表末尾添加新的对象 list.count(obj) 统计某个元素在列表 ...

  9. python大数据论坛_干货 | Python+大数据计算平台,PyODPS架构手把手教你搭建

    数据分析和机器学习 大数据基本都是建立在Hadoop系统的生态上的,其实一个Java的环境.很多人喜欢用Python和R来进行数据分析,但是这往往对应一些小数据的问题,或者本地数据处理的问题.如何将二 ...

最新文章

  1. 买得嗨更要聊得嗨 阿里通免费电话惠战双11
  2. python 查看数据结构类型_python标准数据结构类型
  3. 剑指offer--面试题12
  4. Tomcat vs. Jetty vs. Undertow: Comparison of Spring Boot Embedded Servlet Containers
  5. A % B Problem
  6. JIAVA知识点整理
  7. C. Barcode dp
  8. C++(静态)(常量)数据进行初始化问题以及静态变量析构
  9. 基于 Windows Mobile 的 Pocket PC 和 Smartphone 的开发工具简介
  10. 网络安全之等级保护问题集
  11. openfire的搭建与运行(转)
  12. 为什么C语言简洁灵活方便,C语言语法简洁紧凑使用方便灵活具有丰富的运算.ppt...
  13. C# vb .net实现相机视图效果滤镜
  14. Jenkins(03):配置Jenkins自动发送邮件
  15. 如何利用任意波形发生器创建你想要的波形并输出
  16. 浏览器主页被2345拦截
  17. bch纠错码 码长8_密码学BCH纠错编码算法
  18. 避难所Android闪退,iOS/安卓版《辐射:避难所》Fallout Shelter攻略:闪退进不去解决办法...
  19. CMWAP 和 CMNET 的主要区别与适用范围
  20. Python语法之函数

热门文章

  1. [Linux] PHP程序员玩转Linux系列-nginx初学者引导
  2. 用SpriteBuilder简化quot;耕牛遍地走quot;的动画效果(二)
  3. Broadcast Receiver注意事项
  4. Apache Zookeeper入门1
  5. 批量图纸数据抽取及更新的实现(可不打开文件)
  6. [转载]Sql Server 日期格式转换
  7. 全国高校计算机课程教学系列报告会,西安交大承办2013年全国高校物理课程教学系列报告会...
  8. 信息学奥赛一本通(1212:LETTERS)
  9. 线性结构 —— 差分数组
  10. C++语言基础 —— STL —— 容器与迭代器 —— heap