Python连接DB2数据库

 更新时间:2016年08月27日 09:27:45   投稿:hebedich  
DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本。今天我们来探讨下如何使用Python连接DB2数据库

在工作中遇到了这样的情况,项目中需要连接IBM的关系型数据库(DB2),关于这方面的库比较稀少,其中 ibm_db 是比较好用的一个库,网上也有教程,但是好像不准确,也不太详细,错误百出,没办法只能拿到后自己分析源码,总算搞定。

安装

环境需求:

首先是数据库DB2,下载连接直接百度,我下载是这两个文件:

 

只下载箭头所指即可,我还没在linux上做测试。

数据库API(这个东西找了好久,终于找到了合适的)(找不到搜:SQLAPI.zip)

Python2.7

VCForPython2.7

ibm_db(主要的库,在安装中会下载ntx64_odbc_cli库,安装时会检测 IBM_DB_HOME 变量,所以需要安装数据库后再安装ibm_db)

以上模块在网上都可以找到,请自行下载安装。

建库

数据库安装好之后新建一个实例,默认是DB2,然后创建一个新的数据库,我创建的MYTEST(在操作数据库以及链接数据库需注意大小写),命令行方法:

打开命令行处理器:(管理员身份)

 

输入? 直接回车,会显示命令列表,开启数据库管理器:

 

然后关闭就好,建立数据库以及创建表还是使用db2 data studio,比较方便,安装时在根目录创建一个临时目录,把文件解压进去,之后再修改install.exe的属性,改成兼容Windows 7运行,同时使用管理员权限打开,之后就是安装安装好之后点击左侧新建一个数据库。

 

按以上方式填写,用户名和密码使用安装数据库时设置的用户名密码。

实例配置好并且能测试成功就可以创建数据库了。

 

数据库名称和别名写上即可,其余的由于是测试就不填了,等正式环境在考察下性能优化方面的配置。点击运行创建,过程有点慢,不知道是不是机器配置原因,大概花了十几分钟。

下面就不详细说建表的过程了,值需注意,建表前先简历模式(Schema),使用自定义模式建表。

连接

连接直接导入库

 

导入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使用rpc框架gRPC的方法

    python使用rpc框架gRPC的方法

    这篇文章主要为大家详细介绍了python使用rpc框架gRPC的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • python实现数字华容道

    python实现数字华容道

    这篇文章主要为大家详细介绍了python实现数字华容道,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • 使用Python批量对文本文件编码互转的方法

    使用Python批量对文本文件编码互转的方法

    这篇文章主要介绍了使用Python批量对文本文件编码互转的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Pytorch maxpool的ceil_mode用法

    Pytorch maxpool的ceil_mode用法

    今天小编就为大家分享一篇Pytorch maxpool的ceil_mode用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python中django学习心得

    Python中django学习心得

    这篇文章主要介绍了Python中django Web应用框架的学习做了总结并把心得体会写了一下,大家一起参考下吧。
    2017-12-12
  • python遍历目录下所有文件的五种实现方法

    python遍历目录下所有文件的五种实现方法

    本文主要介绍了python遍历目录下所有文件的五种实现方法,包含os.walk(),os.scandir(),os.listdir(),glob模块和osqp模块这几种方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • 学python需要去培训机构吗

    学python需要去培训机构吗

    在本篇文章里小编给大家整理的是关于学python是否需要去培训机构的相关内容,有需要的朋友们可以阅读下。
    2020-07-07
  • 关于pytorch多GPU训练实例与性能对比分析

    关于pytorch多GPU训练实例与性能对比分析

    今天小编就为大家分享一篇关于pytorch多GPU训练实例与性能对比分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python类中的魔法方法之 __slots__原理解析

    Python类中的魔法方法之 __slots__原理解析

    这篇文章主要介绍了Python类中的魔法方法之 __slots__详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python 三边测量定位的实现代码

    python 三边测量定位的实现代码

    这篇文章主要介绍了python 三边测量定位的实现代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04

最新评论