Python连接DB2数据库


Posted in Python onAugust 27, 2016

在工作中遇到了这样的情况,项目中需要连接IBM的关系型数据库(DB2),关于这方面的库比较稀少,其中 ibm_db 是比较好用的一个库,网上也有教程,但是好像不准确,也不太详细,错误百出,没办法只能拿到后自己分析源码,总算搞定。

安装

环境需求:

首先是数据库DB2,下载连接直接百度,我下载是这两个文件:

Python连接DB2数据库 

只下载箭头所指即可,我还没在linux上做测试。

数据库API(这个东西找了好久,终于找到了合适的)(找不到搜:SQLAPI.zip)

Python2.7

VCForPython2.7

ibm_db(主要的库,在安装中会下载ntx64_odbc_cli库,安装时会检测 IBM_DB_HOME 变量,所以需要安装数据库后再安装ibm_db)

以上模块在网上都可以找到,请自行下载安装。

建库

数据库安装好之后新建一个实例,默认是DB2,然后创建一个新的数据库,我创建的MYTEST(在操作数据库以及链接数据库需注意大小写),命令行方法:

打开命令行处理器:(管理员身份)

Python连接DB2数据库 

输入? 直接回车,会显示命令列表,开启数据库管理器:

Python连接DB2数据库 

然后关闭就好,建立数据库以及创建表还是使用db2 data studio,比较方便,安装时在根目录创建一个临时目录,把文件解压进去,之后再修改install.exe的属性,改成兼容Windows 7运行,同时使用管理员权限打开,之后就是安装安装好之后点击左侧新建一个数据库。

Python连接DB2数据库 

按以上方式填写,用户名和密码使用安装数据库时设置的用户名密码。

实例配置好并且能测试成功就可以创建数据库了。

Python连接DB2数据库 

数据库名称和别名写上即可,其余的由于是测试就不填了,等正式环境在考察下性能优化方面的配置。点击运行创建,过程有点慢,不知道是不是机器配置原因,大概花了十几分钟。

下面就不详细说建表的过程了,值需注意,建表前先简历模式(Schema),使用自定义模式建表。

连接

连接直接导入库

Python连接DB2数据库 

导入ibm_db_dbi即可。

import ibm_db_dbi

conn = ibm_db_dbi.connect(“PORT=50000;PROTOCOL=TCPIP;”, host=db[“host”], database=db[“database”], user=db[“user”],

password=db[“passwd”])

conn.set_autocommit(True)

cursor = conn.cursor()

连接数据库,设置自动提交

查询

sql = “select * from testable”

result = cursor.execute(sql)

注意,以上查询方式是错的。正确如下:

sql = “select * from MYSCHEMA.TESTTABLE” 


result = cursor.execute(sql) rows = cursor.fetchall()

这里的操作和MySQL没什么差别了

这个地方被坑了好几个小时,T_T

插入

sql = “insert into MYSCHEMA.TESTTABLE (“uuid”, “content”) values (‘%s', %s)” % (“1234567890”, “asdfghjkl”)

result = cursor.execute(sql)

更新

sql = “update \”MYSCHEMA\”.\”TESTTABLE \” set \”content\” = ‘%s' where \”uuid\” = ‘%s'” % (

“aaa”, “1234567890”)

result = cursor.execute(sql)

如果操作成功,result就是True,注意每个语句的引号,单双必须按以上的方式。

以上就是本文给大家分享的使用Python连接DB2数据库的全部内容了,希望对小伙伴们能够有所帮助。

Python 相关文章推荐
跟老齐学Python之类的细节
Oct 13 Python
python中lambda与def用法对比实例分析
Apr 30 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
深入理解Python装饰器
Jul 27 Python
Python实现批量压缩图片
Jan 25 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
Nov 30 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
Python自定义sorted排序实现方法详解
Sep 18 Python
python 对xml解析的示例
Feb 27 Python
Python实现PIL图像处理库绘制国际象棋棋盘
Jul 16 Python
Python Pandas解析读写 CSV 文件
Apr 11 Python
使用python绘制常用的图表
Aug 27 #Python
python实现实时监控文件的方法
Aug 26 #Python
Python爬取京东的商品分类与链接
Aug 26 #Python
Python设计模式之抽象工厂模式
Aug 25 #Python
简单谈谈python中的Queue与多进程
Aug 25 #Python
利用Python自动监控网站并发送邮件告警的方法
Aug 24 #Python
巧用python和libnmapd,提取Nmap扫描结果
Aug 23 #Python
You might like
PHP常用代码
2006/11/23 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
用JavaScript显示随机图像或引用
2009/04/21 Javascript
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
JS延迟加载加快页面打开速度示例代码
2013/12/30 Javascript
jquery制作居中遮罩层效果分享
2014/02/21 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
深入浅析javascript立即执行函数
2015/10/23 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
2016/11/07 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
iscroll实现下拉刷新功能
2017/07/18 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
详解python读取和输出到txt
2019/03/29 Python
python 制作本地应用搜索工具
2021/02/27 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
企业宣传口号
2014/06/12 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
付款委托书范本
2014/10/05 职场文书
2015年幼儿园班务工作总结
2015/05/12 职场文书
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技