Python连接DB2数据库
python版本为3.5
- 导入IBM的数据包: Python Package Index 解压后 ibm_db
- 下载db2驱动 clidriver 解压后得到clidriver目录
- 将clidriver复制到ibm_db目录,进入ibm_db目录,执行
python setup.py install
即可
ibm_db有两种执行方式
# 1、采用立即执行的方式,不支持?占位符,只能采取拼接字符串的方式,且字符串类型的数据一定要有单引号
sql = "SELECT * FROM TAB_USER WHERE MOBILE = '%s';"%"13911111111"
stmt = ibm_db.exec_immediate(conn, sql)
result = ibm_db.fetch_both(stmt) # 提取结果
print(result)# 2、采用预编译的方式,支持 ? 占位符
sql = "SELECT * FROM TAB_USER WHERE MOBILE= ?"
sql_args = ("13911111111",)
stmt = ibm_db.prepare(conn, sql) # 预编译
ibm_db.execute(stmt, sql_args) # 执行
result = ibm_db.fetch_row(stmt)
print(result)
import ibm_db# 连接字符串
connStr = "DATABASE=TEST;HOSTNAME=192.168.0.1;PORT=50000;PROTOCOL=TCPIP;UID=username;PWD=password;"
conn = None
try:# 连接数据库conn = ibm_db.connect(connStr, "", "")# 关闭自动提交ibm_db.autocommit(conn, ibm_db.SQL_AUTOCOMMIT_OFF)# 以插入语句为例,删除和更新只需要替换语句即可sql = "insert into tab_A values('%s', '%s')" % (1, "Jet")# 执行SQL语句stmt = ibm_db.exec_immediate(conn, sql)# 获取受影响的行数rows = ibm_db.num_rows(stmt)# 提交事务ibm_db.commit(conn)
except Exception as ex:# 回滚事务ibm_db.rollback(conn)
finally:# 关闭数据库连接ibm_db.close(conn)
ibm_db没办法一次提取多行,提取多行数据,需要循环提取。提取查询结果有四种方式:
# 1.先调用fetch_row(stmt),有结果返回true否则返回false,再调用ibm_db.result(stmt, col_idx)提取结果ibm_db.fetch_row(stmt)
result = ibm_db.result(stmt, 0)#2.调用fetch_both(stmt)提取一行,返回的结果是一个字典,取值可以用列名或索引 result["MOBILE"]或 result[0]result = ibm_db.fetch_both(stmt)3.调用fetch_assoc(stmt)提取一行,返回的是一个字典,取值只能用列明 result["MOBILE"]result = ibm_db.fetch_assoc(stmt)#4.调用fetch_tuple(stmt)提取一行,返回的是一个元组,取值只能用索引 result[0]result = ibm_db.fetch_tuple(stmt)
#-*-coding-*-
import ibm_db
import time
conn = ibm_db.connect("DATABASE=EDW;HOSTNAME=输入IP;PORT=端口;PROTOCOL=通信协议;UID=用户名;PWD=密码;", "", "")
#print(conn)
if conn:#写一条查询语句sql = "Select A,B,C from CC.ABC"stmt = ibm_db.exec_immediate(conn,sql)result = ibm_db.fetch_both(stmt)for i in range(len(result)):print("第一个字段:",result[0]+'\n'+"第二个字段:",result[1]+'\n'+"第三个字段",result[2])print('----------------')#停止0.5秒输出time.sleep(0.5)result = ibm_db.fetch_both(stmt)
#最后记得关闭数据库连接
ibm_db.close(conn)
注意事项:
- 就是一定记得要关闭连接。
- 读取数据只能一行一行读取,需要
result = ibm_db.fetch_both(stmt)
代码在调下一行
Python连接DB2数据库相关推荐
- python连接db2数据库 import的包_python 连接DB2数据库
pandas 链接DB2数据库 注意事项: 1.就是一定记得要关闭连接. 2.读取数据只能一行一行读取,需要 result = ibm_db.fetch_both(stmt) 代码再调下一行 impo ...
- python连接sql_Python连接DB2数据库
在工作中遇到了这样的情况,项目中需要连接IBM的关系型数据库(DB2),关于这方面的库比较稀少,其中 ibm_db 是比较好用的一个库,网上也有教程,但是好像不准确,也不太详细,错误百出,没办法只能拿 ...
- python3连接db2数据库_Python如何连接DB2数据库?
今天我们来探讨下Python如何连接DB2数据库.DB2是IBM在美国开发的一组关系数据库管理系统.它的主要操作环境是UNIX(包括IBM自己的AIX),Linux,IBM i(以前称为OS/400) ...
- Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法
Python 连接 Oracle 数据库 第一章:连接 oracle 数据与环境配置 ① 连接 oracle 数据库效果演示 ② oci 下载 ③ oci 配置 ④ 环境变量配置 ⑤ 检测是否有 or ...
- Python连接Oracle数据库,以字典形式返回结果
众所周知,Python连接Oracle数据库,一般都使用cx_Oracle这个包. 但关键是cx_Oracle这个包,返回的结果,都是元组或者列表. 如以下代码: 1 import cx_Oracle ...
- python链接hbase模块_HBase实战(1):使用Python连接Hbase数据库
来源于 https://blog.csdn.net/duan_zhihua/java/article/details/80622166 使用Python连接Hbase数据库 1,Hbase下载. 下载 ...
- python连接各种数据库数据_Python连接各种数据库
1.连接Hive数据库 想直接使用python连接hive数据库,貌似有很多包可以选,网上用的比较多的是PyHive和impyla.这里我直接选用了PyHive. Pyhive这个包安装非常容易,这里 ...
- Python连接Mysql数据库入门
Python 连接mysql数据库入门教程 直接上代码 数据库建表省略 要执行哪段代码把#去掉即可:有文字解释 难度 : ⭐⭐(全星5颗星的情况下) import pymysql # 导入模块 根据P ...
- 【Oracle】Python 连接Oracle 数据库
From: http://space.itpub.net/22664653/viewspace-711728 Python 连接Oracle 数据库,需要使用cx_Oracle 包. 1 下载cx_O ...
- Python连接MySQL数据库(pymysql),DataFrame写入 MySQL(create_engine)- Python代码
模块安装 使用以下命令安装 PyMySQL: $ pip install PyMySQL 若系统不支持 pip,还可以这样安装: $ git clone https://github.com/PyMy ...
最新文章
- pandas获取dataframe数据列的数据类型、获取dataframe每类数据类型数据列的个数、使用select_dtypes函数、include参数以及exclude参数按照数据类型筛选数据
- wxpython应用程序对象与顶级窗口_wxPython 基础 | 学步园
- Delphi7 (第二天:结构及常用函数)
- MongoDB -- Error: unclean shutdown detected
- leetcode 73 矩阵置零 Python
- 给定圆的半径r,求圆的面积。
- TypeError系列之:TypeError: 'tuple' object does not support item assignment
- shell脚本-页面静态化
- JVM 性能调优监控工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解
- hihocoder第212周-动态规划
- android--gradle编译龟速?offline!
- C#设计模式--设配器模式
- 计算机自带pdf吗,PDF是什么?怎么电脑上编辑PDF文件
- 网络编程学习之经典书籍推荐
- 巴拿赫空间的基本概念
- C语言外推法求搜索区间程序,一维搜索外推法程序设计实验报告.doc
- HDOJ 最小长方形 1859
- 关于python的毕业设计题目_计算机毕业设计如何选题
- Navicat for MySQL 安装以及初始创建连接,新建数据表
- PyTorch学习笔记(20) ——激活函数
热门文章
- gimp 抠图_gimp抠图教程:gimp快速实现抠图效果
- Shiro 放行Swagger
- ORK包的安装与linemod算法识别测试 (使用kinect v2 出现很奇怪的问题和解决)
- 主生产计划 操作教程 用友u8_【用友u8操作教程(用友财务软件u8实际操作教程)】免费在线试用_软件库_选软件网...
- 噪声报警c语言程序,环境噪声监测器(软件部分).doc
- Python进阶练习题,新手快码起来
- RPA机器人可以为工业制造业带来什么巨变
- 使用 CleanWipe 解决Symantec Endpoint Protection卸载需要密码问题
- ad怎么批量改元器件封装_ad16如何批量添加封装库?
- 【资料分享】500篇干货解读人工智能新时代