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中使用摄像头实现简单的延时摄影技术
Mar 27 Python
简述Python中的面向对象编程的概念
Apr 27 Python
Python性能提升之延迟初始化
Dec 04 Python
用生成器来改写直接返回列表的函数方法
May 25 Python
Numpy array数据的增、删、改、查实例
Jun 04 Python
Python numpy实现二维数组和一维数组拼接的方法
Jun 05 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
python 数字类型和字符串类型的相互转换实例
Jul 17 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
解决python DataFrame 打印结果不换行问题
Apr 09 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
Apr 17 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
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
JavaScript不使用prototype和new实现继承机制
2014/12/29 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
Python中的CURL PycURL使用例子
2014/06/01 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
python 中的divmod数字处理函数浅析
2017/10/17 Python
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
医院办公室主任职责
2013/12/29 职场文书
缴纳养老保险的证明
2014/01/10 职场文书
家具促销活动方案
2014/02/16 职场文书
自荐信的基本格式
2014/02/22 职场文书
高考寄语大全
2014/04/08 职场文书
办理信用卡收入证明范例
2014/09/13 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
Python 文字识别
2022/05/11 Python
MySQL的意向共享锁、意向排它锁和死锁
2022/07/15 MySQL