利用Python連接Oracle數(shù)據(jù)庫的基本操作指南
這里我們采用的是使用Oracle數(shù)據(jù)庫進(jìn)行相關(guān)操作
在連接數(shù)據(jù)庫之間,應(yīng)下載相應(yīng)的工具包c(diǎn)x_Oracle,在你安裝的Python文件夾中找到script,在路徑欄點(diǎn)擊輸入cmd回車進(jìn)入命令行輸入
pip install cx_Oracle
進(jìn)行安裝,工具包較小,下載較快,大概300kb。
安裝好之后,打開Python,新建一個(gè)工作區(qū)。
1.引入該工具包,使用import關(guān)鍵詞,輸入
import cx_Oracle
引入該工具包,運(yùn)行看是否加載成功(結(jié)果區(qū)為>>空行),無其他內(nèi)容),則表示加載成功;
2.建立與數(shù)據(jù)庫的連接,創(chuàng)建一個(gè)數(shù)據(jù)庫對象
對象名 = cx_Oracle.connect('用戶名','密碼','監(jiān)聽地址/數(shù)據(jù)庫名')
注意:用戶名密碼及數(shù)據(jù)庫名,是你在登錄Oracle數(shù)據(jù)庫圖形界面工具PLSQL Developer時(shí)填寫的內(nèi)容,監(jiān)聽端口地址為電腦的監(jiān)聽端口地址(最后有查找方法)
3.創(chuàng)建一個(gè)游標(biāo)來執(zhí)行sql語句,
游標(biāo)對象名 = 對象名.cursor()
4.通過建立SQL語句來進(jìn)行操作數(shù)據(jù)庫,SQL語句的語法規(guī)則同Oracle上的規(guī)則完全相同。
5.通過游標(biāo)對象名調(diào)用execute()方法執(zhí)行單條SQL語句。如:
游標(biāo)對象名.execute(sql)
6.通過游標(biāo)對象名調(diào)用executemany(sql,param)方法執(zhí)行多條SQL語句。插入多條數(shù)據(jù)值時(shí)常用,每行的數(shù)據(jù)值應(yīng)封裝在一個(gè)元組內(nèi),再使用列表進(jìn)行封裝。如:
param = [(1,'張山',29)] 游標(biāo)對象名.executemany(sql,param)
7.通過變量名調(diào)用fetchone()方法獲取一條被執(zhí)行的SQL查詢語句的值。如:
變量名 = 游標(biāo)對象名.execute(sql) 變量名.fetchone()
8.通過變量名調(diào)用fetchmany(int)方法獲取一條被執(zhí)行的SQL查詢語句的多條值,int為指定查詢數(shù)據(jù)的條數(shù)。如:
變量名 = 游標(biāo)對象名.execute(sql) 變量名.fetchmany(int值)
9.通過變量名調(diào)用fetchall()方法獲取一條被執(zhí)行的SQL查詢語句的全部值。如:
變量名 = 游標(biāo)對象名.execute(sql) 變量名.fetchall()
10.當(dāng)SQL語句為查詢語句或者插入數(shù)據(jù)語句時(shí),通過數(shù)據(jù)庫對象引用commit()方法提交更新數(shù)據(jù)。如:
數(shù)據(jù)庫對象名.commit()
11.當(dāng)所有操作執(zhí)行完之后,關(guān)閉游標(biāo)的使用,即關(guān)閉后臺(tái)指向,通過調(diào)用其close()方法。如:
游標(biāo)對象名.close()
12.當(dāng)所有操作執(zhí)行完之后,關(guān)閉數(shù)據(jù)庫的連接,通過數(shù)據(jù)庫對象名調(diào)用其close()方法進(jìn)行關(guān)閉。如:
數(shù)據(jù)庫對象名.close()
小結(jié),這些是連接使用數(shù)據(jù)庫的最基本內(nèi)容,當(dāng)某條語句進(jìn)行的多的時(shí)候,可以使用類進(jìn)行封裝,當(dāng)使用時(shí)直接引入類,調(diào)用類中的函數(shù)塊操作即可。
范例如下(創(chuàng)建數(shù)據(jù)庫對象時(shí)填寫自己對應(yīng)的內(nèi)容):
import cx_Oracle conn = cx_Oracle.connect('system','123456','監(jiān)聽/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)聽端口地址查找方法:win+r輸入cmd回車,進(jìn)入命令行輸入netstat -a;,即可查看。
總結(jié)
到此這篇關(guān)于利用Python連接Oracle數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)Python連接Oracle的基本操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Matplotlib 繪制精美的數(shù)學(xué)圖形例子
今天小編就為大家分享一篇使用Matplotlib 繪制精美的數(shù)學(xué)圖形例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python Lambda函數(shù)使用總結(jié)詳解
這篇文章主要介紹了Python Lambda函數(shù)使用總結(jié)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12簡單實(shí)現(xiàn)python進(jìn)度條腳本
這篇文章主要教大家如何簡單實(shí)現(xiàn)python進(jìn)度條,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Python實(shí)現(xiàn)Excel文件的合并(以新冠疫情數(shù)據(jù)為例)
這篇將以新冠疫情數(shù)據(jù)為例,詳細(xì)介紹了如何利用Python實(shí)現(xiàn)合并Excel文件,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-03-03pandas把所有大于0的數(shù)設(shè)置為1的方法
今天小編就為大家分享一篇pandas把所有大于0的數(shù)設(shè)置為1的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01