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 相关文章推荐
基于scrapy实现的简单蜘蛛采集程序
Apr 17 Python
Python3实现从文件中读取指定行的方法
May 22 Python
Python中使用bidict模块双向字典结构的奇技淫巧
Jul 12 Python
python中的字典使用分享
Jul 31 Python
Python图像处理之gif动态图的解析与合成操作详解
Dec 30 Python
python 实现一次性在文件中写入多行的方法
Jan 28 Python
python五子棋游戏的设计与实现
Jun 18 Python
django云端留言板实例详解
Jul 22 Python
python爬虫 批量下载zabbix文档代码实例
Aug 21 Python
python实现批量文件重命名
Oct 31 Python
后端开发使用pycharm的技巧(推荐)
Mar 27 Python
使用Keras构造简单的CNN网络实例
Jun 29 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 dirname()与__FILE__常量的应用
2013/06/24 PHP
php构造函数的继承方法
2015/02/09 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
javascript获得网页窗口实际大小的示例代码
2013/09/21 Javascript
JavaScript常用脚本汇总(二)
2015/03/04 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
python线程锁(thread)学习示例
2013/12/04 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
使用python计算三角形的斜边例子
2020/04/15 Python
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
草莓网官网:StrawberryNET
2019/08/21 全球购物
说出你对remoting 和webservice的理解和应用
2014/06/08 面试题
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
外贸公司实习自我鉴定
2013/09/24 职场文书
英文翻译的自我评价语句
2013/10/04 职场文书
岗位职责风险点
2014/03/12 职场文书
工程力学专业自荐信范文
2014/03/17 职场文书
2014年学习厉行节约反对浪费思想汇报
2014/09/10 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技