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小脚本查询同ip网站
May 08 Python
分析python动态规划的递归、非递归实现
Mar 04 Python
python爬虫_实现校园网自动重连脚本的教程
Apr 22 Python
浅谈dataframe中更改列属性的方法
Jul 10 Python
Python Unittest根据不同测试环境跳过用例的方法
Dec 16 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
python 实现视频 图像帧提取
Dec 10 Python
Pytorch训练过程出现nan的解决方式
Jan 02 Python
如何基于python对接钉钉并获取access_token
Apr 21 Python
TensorFLow 数学运算的示例代码
Apr 21 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
django项目中使用云片网发送短信验证码的实现
Jan 19 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
PHP简洁函数小结
2011/08/12 PHP
与文件上传有关的php配置参数总结
2013/06/14 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
2012/03/10 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
AngularJS模板加载用法详解
2016/11/04 Javascript
js数组操作方法总结(必看篇)
2016/11/22 Javascript
Javascript自定义事件详解
2017/01/13 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
vue element中axios下载文件(后端Python)
2019/05/10 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
新手学python应该下哪个版本
2020/06/11 Python
次世代生活态度:Hypebeast
2018/07/05 全球购物
斯福泰克软件测试面试题
2015/02/16 面试题
环境工程求职简历的自我评价范文
2013/10/24 职场文书
《自然之道》教学反思
2014/02/11 职场文书
房屋买卖协议样本
2014/11/16 职场文书
教师党员自我评价2015
2015/03/04 职场文书
领导离职感言
2015/08/03 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
小学主题班会教案
2015/08/17 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python