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自带的http模块详解
Nov 06 Python
Python爬虫:通过关键字爬取百度图片
Feb 17 Python
Python反转序列的方法实例分析
Mar 21 Python
对pandas中时间窗函数rolling的使用详解
Nov 28 Python
使用Python实现微信提醒备忘录功能
Dec 04 Python
python 文本单词提取和词频统计的实例
Dec 22 Python
python中pip的使用和修改下载源的方法
Jul 08 Python
python实现ftp文件传输系统(案例分析)
Mar 20 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
浅谈keras中的目标函数和优化函数MSE用法
Jun 10 Python
浅谈TensorFlow中读取图像数据的三种方式
Jun 30 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 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中二分法查找算法实例分析
2016/09/22 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
Javascript的&&和||的另类用法
2014/07/23 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
2015/03/02 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
基于bootstrop常用类总结(推荐)
2017/09/11 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
详解JavaScript作用域和作用域链
2019/03/19 Javascript
[51:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/30 DOTA
python自带的http模块详解
2016/11/06 Python
python实现K最近邻算法
2018/01/29 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
python3实现逐字输出的方法
2019/01/23 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
python自动发微信监控报警
2019/09/06 Python
Python列表切片常用操作实例解析
2019/12/16 Python
keras的三种模型实现与区别说明
2020/07/03 Python
财务分析个人的自荐书范文
2013/11/24 职场文书
毕业学生推荐信
2013/12/01 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
护理专业自荐书
2014/06/04 职场文书
旷课检讨书
2015/01/26 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
开学第一天的感想
2015/08/10 职场文书
MySQL数字类型自增的坑
2021/05/07 MySQL