溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何利用Python連接Oracle數(shù)據(jù)庫(kù)

發(fā)布時(shí)間:2022-06-10 13:53:25 來(lái)源:億速云 閱讀:506 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“如何利用Python連接Oracle數(shù)據(jù)庫(kù)”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“如何利用Python連接Oracle數(shù)據(jù)庫(kù)”文章吧。

這里我們采用的是使用Oracle數(shù)據(jù)庫(kù)進(jìn)行相關(guān)操作

在連接數(shù)據(jù)庫(kù)之間,應(yīng)下載相應(yīng)的工具包c(diǎn)x_Oracle,在你安裝的Python文件夾中找到script,在路徑欄點(diǎn)擊輸入cmd回車進(jìn)入命令行輸入

 pip install cx_Oracle

進(jìn)行安裝,工具包較小,下載較快,大概300kb。

安裝好之后,打開(kāi)Python,新建一個(gè)工作區(qū)。

1.引入該工具包,使用import關(guān)鍵詞,輸入

import cx_Oracle

引入該工具包,運(yùn)行看是否加載成功(結(jié)果區(qū)為>>空行),無(wú)其他內(nèi)容),則表示加載成功;

2.建立與數(shù)據(jù)庫(kù)的連接,創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)對(duì)象

對(duì)象名 = cx_Oracle.connect('用戶名','密碼','監(jiān)聽(tīng)地址/數(shù)據(jù)庫(kù)名')

注意:用戶名密碼及數(shù)據(jù)庫(kù)名,是你在登錄Oracle數(shù)據(jù)庫(kù)圖形界面工具PLSQL Developer時(shí)填寫(xiě)的內(nèi)容,監(jiān)聽(tīng)端口地址為電腦的監(jiān)聽(tīng)端口地址(最后有查找方法)

3.創(chuàng)建一個(gè)游標(biāo)來(lái)執(zhí)行sql語(yǔ)句,

游標(biāo)對(duì)象名 = 對(duì)象名.cursor()

4.通過(guò)建立SQL語(yǔ)句來(lái)進(jìn)行操作數(shù)據(jù)庫(kù),SQL語(yǔ)句的語(yǔ)法規(guī)則同Oracle上的規(guī)則完全相同。

5.通過(guò)游標(biāo)對(duì)象名調(diào)用execute()方法執(zhí)行單條SQL語(yǔ)句。如:

游標(biāo)對(duì)象名.execute(sql)

6.通過(guò)游標(biāo)對(duì)象名調(diào)用executemany(sql,param)方法執(zhí)行多條SQL語(yǔ)句。插入多條數(shù)據(jù)值時(shí)常用,每行的數(shù)據(jù)值應(yīng)封裝在一個(gè)元組內(nèi),再使用列表進(jìn)行封裝。如:

param = [(1,'張山',29)]
游標(biāo)對(duì)象名.executemany(sql,param)

7.通過(guò)變量名調(diào)用fetchone()方法獲取一條被執(zhí)行的SQL查詢語(yǔ)句的值。如:

變量名 = 游標(biāo)對(duì)象名.execute(sql)
變量名.fetchone()

8.通過(guò)變量名調(diào)用fetchmany(int)方法獲取一條被執(zhí)行的SQL查詢語(yǔ)句的多條值,int為指定查詢數(shù)據(jù)的條數(shù)。如:

變量名 = 游標(biāo)對(duì)象名.execute(sql)
變量名.fetchmany(int值)

9.通過(guò)變量名調(diào)用fetchall()方法獲取一條被執(zhí)行的SQL查詢語(yǔ)句的全部值。如:

變量名 = 游標(biāo)對(duì)象名.execute(sql)
變量名.fetchall()

10.當(dāng)SQL語(yǔ)句為查詢語(yǔ)句或者插入數(shù)據(jù)語(yǔ)句時(shí),通過(guò)數(shù)據(jù)庫(kù)對(duì)象引用commit()方法提交更新數(shù)據(jù)。如:

數(shù)據(jù)庫(kù)對(duì)象名.commit()

11.當(dāng)所有操作執(zhí)行完之后,關(guān)閉游標(biāo)的使用,即關(guān)閉后臺(tái)指向,通過(guò)調(diào)用其close()方法。如:

游標(biāo)對(duì)象名.close()

12.當(dāng)所有操作執(zhí)行完之后,關(guān)閉數(shù)據(jù)庫(kù)的連接,通過(guò)數(shù)據(jù)庫(kù)對(duì)象名調(diào)用其close()方法進(jìn)行關(guān)閉。如:

數(shù)據(jù)庫(kù)對(duì)象名.close()

小結(jié),這些是連接使用數(shù)據(jù)庫(kù)的最基本內(nèi)容,當(dāng)某條語(yǔ)句進(jìn)行的多的時(shí)候,可以使用類進(jìn)行封裝,當(dāng)使用時(shí)直接引入類,調(diào)用類中的函數(shù)塊操作即可。

范例如下(創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象時(shí)填寫(xiě)自己對(duì)應(yīng)的內(nèi)容):

import cx_Oracle
conn = cx_Oracle.connect('system','123456','監(jiān)聽(tīng)/orcl')
cursor = conn.cursor()
sql = """
    CREATE TABLE student (
    sid number primary key,
    sname varchar2(30),
    sage number
    )"""
sql1 = """insert into student values(:sid,:sname,:sage)"""
sql2 = """insert into student values('100004','趙六','24')""" 
sql3 = """select * from student"""
param = [(100001,'張三',19)]
param1 = [(100002,'李四',20),(100003,'王五',21)]
cursor.execute(sql)
print("執(zhí)行成功")
cursor.execute(sql2)
cursor.executemany(sql1,param)
print("執(zhí)行成功")
cursor.executemany(sql1,param1)
print("執(zhí)行成功")
conn.commit()
s = cursor.execute(sql3)
print(s.fetchmany(3))
print("執(zhí)行成功")
cursor.close()
conn.close()

電腦監(jiān)聽(tīng)端口地址查找方法:win+r輸入cmd回車,進(jìn)入命令行輸入netstat -a;,即可查看。

以上就是關(guān)于“如何利用Python連接Oracle數(shù)據(jù)庫(kù)”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI