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中的CURL PycURL使用例子
Jun 01 Python
python爬虫中get和post方法介绍以及cookie作用
Feb 08 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
Mar 13 Python
python用BeautifulSoup库简单爬虫实例分析
Jul 30 Python
Python Matplotlib库安装与基本作图示例
Jan 09 Python
基于Python打造账号共享浏览器功能
May 30 Python
python操作kafka实践的示例代码
Jun 19 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
Django stark组件使用及原理详解
Aug 22 Python
使用django和vue进行数据交互的方法步骤
Nov 11 Python
简单了解python装饰器原理及使用方法
Dec 18 Python
python匿名函数lambda原理及实例解析
Feb 07 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/02/14 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
PHP 查找字符串常用函数介绍
2012/06/07 PHP
PHP关于foreach复制知识点总结
2019/01/28 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
picChange 图片切换特效的函数代码
2010/05/06 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
python进行两个表格对比的方法
2018/06/27 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
中国旅游网站:途牛旅游网
2019/09/29 全球购物
2013年高中生自我评价
2013/10/23 职场文书
运动会广播稿80字
2014/01/23 职场文书
秦兵马俑教学反思
2014/02/07 职场文书
晨会主持词
2014/03/17 职场文书
实习协议书范本
2014/04/22 职场文书
真诚的求职信
2014/07/04 职场文书
幼儿园秋季开学寄语
2014/08/02 职场文书
个人借款协议书范本
2014/11/17 职场文书
2014年管理工作总结
2014/11/22 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
2015年银行员工工作总结
2015/04/24 职场文书
法律进社区活动总结
2015/05/07 职场文书
班主任培训研修日志
2015/11/13 职场文书
浅谈python数据类型及其操作
2021/05/25 Python
详解Python描述符的工作原理
2021/06/11 Python
OpenCV实现普通阈值
2021/11/17 Java/Android
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript