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返回真假值(True or False)小技巧
Apr 10 Python
在Python中操作字符串之replace()方法的使用
May 19 Python
Python引用模块和查找模块路径
Mar 17 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
Apr 27 Python
python实现多层感知器
Jan 18 Python
Python脚本利用adb进行手机控制的方法
Jul 08 Python
pycharm创建scrapy项目教程及遇到的坑解析
Aug 15 Python
python实现名片管理器的示例代码
Dec 17 Python
Python爬虫开发与项目实战
Dec 16 Python
Python 多线程之threading 模块的使用
Apr 14 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 Python
如何Python使用re模块实现okenizer
Apr 30 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 xml文件操作代码(一)
2009/03/20 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
JQUERY 浏览器判断实现函数
2009/08/20 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
webpack3之loader全解析
2017/10/26 Javascript
详解React开发必不可少的eslint配置
2018/02/05 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
Python利用IPython提高开发效率
2016/08/10 Python
python学习必备知识汇总
2017/09/08 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
通过python爬虫赚钱的方法
2019/01/29 Python
Python的条件锁与事件共享详解
2019/09/12 Python
python 实现IP子网计算
2021/02/18 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
为什么UNION ALL比UNION快
2016/03/17 面试题
工程部经理岗位职责
2013/12/08 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
班主任工作实习计划
2015/01/16 职场文书
大学运动会加油稿
2015/07/22 职场文书
小学运动会宣传稿
2015/07/23 职场文书
教师远程培训心得体会
2016/01/09 职场文书
golang elasticsearch Client的使用详解
2021/05/05 Golang
Vue实现下拉加载更多
2021/05/09 Vue.js
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js