Eng1ne_ty

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

本文将介绍如何使用Python连接Oracle数据库进行数据读取与写入。首先介绍环境的安装,此部分借鉴网友的博客,后一部分介绍连接数据库和读书取数等基本使用语法。

1. 环境安装

借鉴网友阑珊的博客,感谢分享!

https://www.cnblogs.com/lansan0701/p/8039332.html

2. 使用语法

(1) 连接数据库

#加载cx_Oracle模块
import cx_Oracle

#创建连接
conn = cx_Oracle.connect('用户名/密码@主机IP地址:端口号/数据库名称', encoding='utf-8')
cursor = conn.cursor()

(2) 查询,读取数据

需求:获取表student中2019年度学生的姓名,年龄,性别,成绩数据。

# 首先写好sql语句,这里需要注意stat_year字段数据库中的类型varchar,在Oracle中查询条件为stat_year = '2019',但在execute()方法中的sql字符串中不需要加引号
sql = 'select name,age,gender,grade from student where stat_year = 2019'

# 利用cousor对象的execute()方法执行sql语句
cursor.execute(sql)

#利用cursor对象的fetchall()方法获取sql的结果返回类型为list,其中每个元素(每条记录)为元组类型
student_informations = cursor.fetchall()

需求:获取符合一定筛选条件的记录数

sql = 'select count(*) from student where stat_year = 2019'

# 利用cousor对象的execute()方法执行sql语句
cursor.execute(sql)

#利用cursor对象的fetchall()方法获取sql的结果返回类型为list,其中每个元素(每条记录)为元组类型,获取结果列表中第一个元组的第一个元素(实际上结果列表只有一个元组,元组中只有一个元素)
counts = cursor.fetchall()[0][0]

(3) 将数据批量写入数据库

需求:将若干条记录写入数据库(已创建)中。这里利用cursor.executemany()方法实现

name = ['A','B','C']
age = [10,8,9]
gender = ['m','f','m']
grade = [80,92,84]
stat_year = ['2019','2019','2019'] 

# 构造数据列表,每行记录表示为字典
data = []
for i in range(len(name)):
data.append({'name':name[i],'age':age[i],'gender':gender[i],'stat_year '=stat_year [i]})

# 利用executemany()函数将列表中的数据插入到数据库中
cursor.executemany('insert into student values(:name ,:age ,:gender ,:grade,:stat_year )',data)
db.commit()

(4) 最后,记得关闭数据库连接

cursor.close()
conn.close()

 

posted on 2019-06-28 14:19  Eng1ne_ty  阅读(948)  评论(0编辑  收藏  举报