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中让MySQL查询结果返回字典类型的方法
Aug 22 Python
Python发送email的3种方法
Apr 28 Python
在Python的Django框架下使用django-tagging的教程
May 30 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
基于Python List的赋值方法
Jun 23 Python
python实现多人聊天室
Mar 31 Python
python使用xlrd模块读取xlsx文件中的ip方法
Jan 11 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
python的命名规则知识点总结
Oct 04 Python
Python爬虫分析微博热搜关键词的实现代码
Feb 22 Python
pytest进阶教程之fixture函数详解
Mar 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初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
javascript 动态创建表格
2015/01/08 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
Vue项目环境搭建详细总结
2019/09/26 Javascript
原生js实现html手机端城市列表索引选择城市
2020/06/24 Javascript
Python的词法分析与语法分析
2013/05/18 Python
学习Python selenium自动化网页抓取器
2018/01/20 Python
Python将列表数据写入文件(txt, csv,excel)
2019/04/03 Python
python中栈的原理及实现方法示例
2019/11/27 Python
pycharm设置python文件模板信息过程图解
2020/03/10 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
装饰资料员岗位职责
2013/12/30 职场文书
食品安全汇报材料
2014/08/18 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
酒店优秀员工推荐信
2015/03/24 职场文书
婚宴父亲致辞
2015/07/27 职场文书
公司考勤管理制度
2015/08/04 职场文书
早上好问候语大全
2015/11/10 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js
SQL Server删除表中的重复数据
2022/05/25 SQL Server