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

Posted eng1ne-ty

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python连接Oracle,从安装到基本用法相关的知识,希望对你有一定的参考价值。

本文将介绍如何使用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,从安装到基本用法的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE基本用法

Oracle连接到SqlServer,如何实现呢?

Python3 通过 pika 连接 RabbitMQ 的基本用法

Python3 通过 kombu 连接 RabbitMQ 的基本用法

docker安装及基本用法

[数据库] Navicat for Oracle基本用法图文介绍