码迷,mamicode.com
首页 > 数据库 > 详细

Python连接Oracle,从安装到基本用法

时间:2019-06-28 14:42:30      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:HERE   成绩   acl   port   构造   into   arch   app   环境安装   

本文将介绍如何使用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()

 

Python连接Oracle,从安装到基本用法

标签:HERE   成绩   acl   port   构造   into   arch   app   环境安装   

原文地址:https://www.cnblogs.com/Eng1ne-ty/p/11102436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!