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实现在pickling的时候压缩的方法
Sep 25 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
May 16 Python
Python合并字典键值并去除重复元素的实例
Dec 18 Python
python安装教程 Pycharm安装详细教程
May 02 Python
Python管理Windows服务小脚本
Mar 12 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
python中对_init_的理解及实例解析
Oct 11 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
Python日志处理模块logging用法解析
May 19 Python
Python如何定义接口和抽象类
Jul 28 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
Jan 07 Python
Python time库的时间时钟处理
May 02 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
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
laravel 获取某个查询的查询SQL语句方法
2019/10/12 PHP
转一个日期输入控件,支持FF
2007/04/27 Javascript
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
webpack配置之后端渲染详解
2017/10/26 Javascript
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
Python机器学习之决策树算法实例详解
2017/12/06 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
python实现扫描局域网指定网段ip的方法
2019/04/16 Python
python实现五子棋游戏
2019/06/18 Python
python+logging+yaml实现日志分割
2019/07/22 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
Python使用scrapy爬取阳光热线问政平台过程解析
2019/08/14 Python
postman传递当前时间戳实例详解
2019/09/14 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
大三在校生电子商务求职信
2013/10/29 职场文书
学校募捐倡议书
2014/05/14 职场文书
大气污染防治方案
2014/05/19 职场文书
网络营销策划方案
2014/06/04 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
2016国培研修心得体会
2016/01/08 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
python - asyncio异步编程
2021/04/06 Python
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS