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 相关文章推荐
一个检测OpenSSL心脏出血漏洞的Python脚本分享
Apr 10 Python
Python中暂存上传图片的方法
Feb 18 Python
Python简单实现安全开关文件的两种方式
Sep 19 Python
django基础之数据库操作方法(详解)
May 24 Python
Linux CentOS7下安装python3 的方法
Jan 21 Python
Python嵌套式数据结构实例浅析
Mar 05 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 Python
快速解决vue.js 模板和jinja 模板冲突的问题
Jul 26 Python
python爬虫库scrapy简单使用实例详解
Feb 10 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
Jul 31 Python
python读取excel进行遍历/xlrd模块操作
Jul 12 Python
tensorflow2.0教程之Keras快速入门
Feb 20 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批量删除数据
2007/01/18 PHP
PHP 程序授权验证开发思路
2009/07/09 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
php从数据库读取数据,并以json格式返回数据的方法
2018/08/21 PHP
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
angularjs自定义过滤器demo示例
2019/08/24 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
如何获取Python简单for循环索引
2019/11/21 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
python打包多类型文件的操作方法
2020/09/21 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
JNI的定义
2012/11/25 面试题
应届毕业生个人求职自荐信
2014/01/06 职场文书
《纸船和风筝》教学反思
2014/02/15 职场文书
派出所所长先进事迹
2014/05/19 职场文书
工作经历证明书范文
2014/11/02 职场文书
2014年人事科工作总结
2014/11/19 职场文书
社区五一劳动节活动总结
2015/02/09 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书