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实现的最近最少使用算法
Jul 10 Python
Python3操作SQL Server数据库(实例讲解)
Oct 21 Python
对python numpy数组中冒号的使用方法详解
Apr 17 Python
Python Tkinter模块实现时钟功能应用示例
Jul 23 Python
python与caffe改变通道顺序的方法
Aug 04 Python
Python实现的KMeans聚类算法实例分析
Dec 29 Python
python+selenium 定位到元素,无法点击的解决方法
Jan 30 Python
Python银行系统实战源码
Oct 25 Python
python循环输出三角形图案的例子
Nov 22 Python
详解从Django Allauth中进行登录改造小结
Dec 18 Python
python 无损批量压缩图片(支持保留图片信息)的示例
Sep 22 Python
Pytorch distributed 多卡并行载入模型操作
Jun 05 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
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
php压缩文件夹最新版
2018/07/18 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
js微信分享实现代码
2020/10/11 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
Python脚本暴力破解栅栏密码
2015/10/19 Python
python3模块smtplib实现发送邮件功能
2018/05/22 Python
对Django外键关系的描述
2019/07/26 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
python 画函数曲线示例
2019/12/04 Python
python如何把字符串类型list转换成list
2020/02/18 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
HTML5实现签到 功能
2018/10/09 HTML / CSS
香港化妆品经销商:我的公主
2016/08/05 全球购物
关于幼儿的自我评价
2013/12/18 职场文书
节能宣传周活动总结
2014/05/08 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
python机器学习实现oneR算法(以鸢尾data为例)
2022/03/03 Python