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之集合的关系
Sep 24 Python
跟老齐学Python之关于循环的小伎俩
Oct 02 Python
浅谈Python中的闭包
Jul 08 Python
Python简单获取自身外网IP的方法
Sep 18 Python
Python调用C++程序的方法详解
Jan 24 Python
Python基于回溯法子集树模板解决m着色问题示例
Sep 07 Python
Python爬虫常用小技巧之设置代理IP
Sep 13 Python
Python生成MD5值的两种方法实例分析
Apr 26 Python
pycharm新建一个python工程步骤
Jul 16 Python
nginx+uwsgi+django环境搭建的方法步骤
Nov 25 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
Jan 15 Python
Python 实现定积分与二重定积分的操作
May 26 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动态图像的创建
2006/10/09 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
给文字加上着重号的JS代码
2013/11/12 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
JS+DIV实现鼠标划过切换层效果的方法
2015/05/25 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
django如何连接已存在数据的数据库
2018/08/14 Python
详解django2中关于时间处理策略
2019/03/06 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
加拿大时装零售商:Influence U
2018/12/22 全球购物
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
幼师专业毕业生自荐信
2013/09/29 职场文书
项目开发计划书
2014/01/09 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
满月酒邀请函
2015/01/30 职场文书
入党心得体会
2019/06/20 职场文书
vscode中使用npm安装babel的方法
2021/08/02 Javascript