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中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
python对json的相关操作实例详解
Jan 04 Python
Python与R语言的简要对比
Nov 14 Python
Python pandas常用函数详解
Feb 07 Python
详解python运行三种方式
May 13 Python
django 邮件发送模块smtp使用详解
Jul 22 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
Python稀疏矩阵及参数保存代码实现
Apr 18 Python
解决reload(sys)后print失效的问题
Apr 25 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
Nov 24 Python
浅析Python中的随机采样和概率分布
Dec 06 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
一个简易需要注册的留言版程序
2006/10/09 PHP
php时间不正确的解决方法
2008/04/09 PHP
用php实现的下载css文件中的图片的代码
2010/02/08 PHP
php自定义函数之递归删除文件及目录
2010/08/08 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
php项目中百度 UEditor 简单安装调试和调用
2015/07/15 PHP
理解Javascript_08_函数对象
2010/10/15 Javascript
Firefox中autocomplete="off" 设置不起作用Bug的解决方法
2011/03/25 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
详解vue中computed 和 watch的异同
2017/06/30 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
详解JavaScript添加给定的标签选项
2018/09/17 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
Python调用C语言开发的共享库方法实例
2015/03/18 Python
详解Python中的分组函数groupby和itertools)
2018/07/11 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
python 三元运算符使用解析
2019/09/16 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
win10系统下python3安装及pip换源和使用教程
2020/01/06 Python
信息管理专业学生自荐信格式
2013/09/22 职场文书
酒店销售主管岗位职责
2014/01/04 职场文书
高中生家长寄语大全
2014/04/03 职场文书
年度考核个人总结
2015/03/06 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
考试没考好检讨书
2015/05/06 职场文书
离职证明范本
2015/06/12 职场文书
Python OpenGL基本配置方式
2022/05/20 Python