欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

python excel导入oracle数据库_【Python代替Excel】12:Python操作oracle数据库

发布时间:2025/3/11 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python excel导入oracle数据库_【Python代替Excel】12:Python操作oracle数据库 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

日常工作中,如果有数据库权限,那么在oracle中提取数据、在Python中处理是比较方便的。Python也提供了一个库专门操纵数据库。今天就专门来讲讲如何在Python中操作数据库。

准备工作

需要工具:oracle、PL/SQL、Python

import cx_Oracle

如果用anaconda prompt直接安装的话,可能会出现错误。最好在网站cx-Oracle下载对应版本(我下载的如下):

下载好之后,直接点击安装包按照提示安装即可。然后在anaconda里import。

SQL语言

先来复习一下几个简单的sql语句吧:

select * from table1 #查询table1的所有数据

create table test_table( name varchar(20), score number) #创建表test_table,包含name、score两列

insert into test_table(name,score) values('zoe',80) #插入一行数据

连接&操作数据库连接数据库

import cx_Oracle

import os

os.environ['NLS_LANG']='SIMPLIFIED CHINESE_CHINA.UTF8' #设置语言环境

db = cx_Oracle.connect('username','password','database') #连接数据库 用户名、密码、数据库名

cursor = db.cursor()

connect里填的,如下:创建表

create_table = """

create table py_table(

name varchar(20),

score number

)

""" #字符串里写SQL语句,用三个双引号括起来

create_flag = cursor.execute(create_table) #执行该SQL语句

运行完这两句,可以在数据库里看到新的表(如果没有,可能要刷新或者重启一下数据库)。插入数据

insert_data1 = """

insert into py_table(name,score) values('zoe',80)

"""

cursor.execute(insert_data1) #执行SQL语句

db.commit() #提交插入多条数据

scores = {

'Tom':100,

'Lily':60,

'Emily':85

}

#第一种 循环

for i in scores.items(): #遍历scores字典的键、值

cursor.execute('insert into py_table(name,score) values(:1,:2)',i) #i是一个元组,包含2个元素

#目前查到的方法,只能把所有列名写出来,然后:1、:2、、、、传入数据。

db.commit() #提交执行

#第二种 多条插入

scores1 = [(i,n) for i,n in scores.items()]

cursor.executemany('insert into py_table values(:1,:2)',scores1) # scores1是列表,里面是元组

db.commit() #提交执行

用executemany的速度会比第一种循环的要快,特别是数据多的时候。查询数据

sql1 = cursor.execute('select * from py_table') #查询数据

data1 = pd.DataFrame(sql1.fetchall()) #fetchall为取所有数据

data2 = sql1.fetchmany(10) #取10条数据绑定变量查询

有时候查询的条件是变化的,就需要用到绑定变量。

#查询zoe的数据

sql = cursor.execute("""select * from py_table where name=:name""",name='zoe') #:name为绑定变量

data = sql.fetchall()

#in查询

sql = cursor.execute("""select * from py_table where name in (:1,:2,:3)""",['zoe','Tom','Lily'])

data = sql.fetchall()

今天的连接Oracle数据库学会了吗?当然还有连接Mysql数据库,不过使用的库不一样,大家可以自行百度。

用Python插入数据库的时候,一定要注意数据的格式,如果与Oracle表的字段格式不匹配,就会出错。

不过使用Python连接数据库,最大的用处还是能方便在数据库查询数据,并且直接在Python中编程处理清洗了。

专栏列表

总结

以上是生活随笔为你收集整理的python excel导入oracle数据库_【Python代替Excel】12:Python操作oracle数据库的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。