欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python訪問(wèn)數(shù)據(jù)庫(kù)的方法

小編給大家分享一下python訪問(wèn)數(shù)據(jù)庫(kù)的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

建水網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司

1.背景:

python提供了很多數(shù)據(jù)庫(kù)接口, 常用的數(shù)據(jù)庫(kù)有 MS SQL Server /MySQL /oracle 等。 

打開(kāi)鏈接 https://wiki.python.org/moin/DatabaseInterfaces

是python 關(guān)于數(shù)據(jù)庫(kù)接口的一個(gè)總結(jié) , 可以看到python支持的訪問(wèn)的數(shù)據(jù)庫(kù)系統(tǒng)。

2.模塊:

python 主要是通過(guò)模塊和數(shù)據(jù)庫(kù)連接的。

2.1 安裝模塊:

如果使用anconda,本身就會(huì)集合很多模塊,不需要手動(dòng)安裝。如果用pycharm就要手動(dòng)安裝模塊。

安裝模塊流程:

下載模塊擴(kuò)展包放到路徑下——>cmd找到相應(yīng)路徑——> pip install +擴(kuò)展包名字

下面列舉一些常用連接數(shù)據(jù)庫(kù)的模塊:pymssql / sqlite3/ PyMySQL/pyodbc/odbc/adodbapi

不同模塊連接的數(shù)據(jù)庫(kù)不同, 支持的版本系統(tǒng)有的也不一樣。但是大體用法都是相近的, 因?yàn)橛蠨B-API

3.Python DB-API

3.1背景:

在沒(méi)有DB-API 之前, 不同數(shù)據(jù)庫(kù)有不同的數(shù)據(jù)庫(kù)接口程序, 這就導(dǎo)致python 訪問(wèn) database 的接口程序非常混亂。如果我們學(xué)習(xí)了python 訪問(wèn) mysql 的接口程序, 然后要切換到另一個(gè)數(shù)據(jù)庫(kù)上, 我們還要在學(xué)習(xí)另外一個(gè)數(shù)據(jù)庫(kù)的接口程序。python DB-API就是為了解決接口程序混亂而生成的。有了DB-API, 在不同數(shù)據(jù)庫(kù)上移植代碼就變得簡(jiǎn)單的多了。

python訪問(wèn)數(shù)據(jù)庫(kù)的方法python訪問(wèn)數(shù)據(jù)庫(kù)的方法

3.2Python DB-API:

Python 定義了一套操作數(shù)據(jù)庫(kù)的 DB-API 接口,它是一個(gè)規(guī)范,定義了一系列必須的對(duì)象和數(shù)據(jù)庫(kù)存取方式,以便為不同的底層數(shù)據(jù)庫(kù)系統(tǒng)提供一致的訪問(wèn)接口

這個(gè)鏈接就是python 官方給定的 DB-API 的說(shuō)明 https://www.python.org/dev/peps/pep-0249/

3.3 Python DB--API的內(nèi)容:

連接對(duì)象:

?Connect()創(chuàng)建連接:host/server /user/password/db connect方法生成一個(gè)connect對(duì)象, 我們通過(guò)這個(gè)對(duì)象來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。符合標(biāo)準(zhǔn)的模塊都會(huì)實(shí)現(xiàn)connect方法。

?close():關(guān)閉連接

?commit():提交當(dāng)前事務(wù)。做出某些更改后確保已經(jīng)進(jìn)行了提交,這樣才可以將這些修改真正地保存到database中

?rollback() 回滾上一次調(diào)用 commit()以來(lái)對(duì)數(shù)據(jù)庫(kù)所做的更改

?cursor():創(chuàng)建游標(biāo)。系統(tǒng)為用戶開(kāi)通的一個(gè)數(shù)據(jù)緩沖區(qū),用于存放SQL語(yǔ)句執(zhí)行結(jié)果。cursor游標(biāo)是有狀態(tài)的,它可以記錄當(dāng)前已經(jīng)取到結(jié)果的第幾個(gè)記錄了,因此,一般你只可以遍歷結(jié)果集一次。在上面的情況下,如果執(zhí)行fetchone()會(huì)返回為空。這一點(diǎn)在測(cè)試時(shí)需要注意

游標(biāo)對(duì)象:

?Execute()執(zhí)行一個(gè)數(shù)據(jù)庫(kù)查詢或命令。 execute 執(zhí)行sql 語(yǔ)句之后運(yùn)行的結(jié)果不會(huì)直接output 出來(lái) , 而是放到了一個(gè)緩存區(qū), 要用 fetch語(yǔ)句+print 可以查詢sql運(yùn)行的結(jié)果

python訪問(wèn)數(shù)據(jù)庫(kù)的方法

?fetchone ()得到結(jié)果集的下一行

?fetchmany(size)得到結(jié)果集的下幾行

?fetchall()返回結(jié)果集中剩下的所有行

?rowcount 返回影響的行數(shù)

?Close()關(guān)閉游標(biāo)對(duì)象

3.4Python DB--API的工作原理及流程:

python訪問(wèn)數(shù)據(jù)庫(kù)的方法

如圖所示如果把python 和數(shù)據(jù)庫(kù)比作兩個(gè)不同的地點(diǎn), connection 就是路, 能連接python和database。cursor就像在路上行駛的小貨車, 可以用于執(zhí)行sql 語(yǔ)句, 以及存儲(chǔ)sql 運(yùn)行的結(jié)果。

流程:

python訪問(wèn)數(shù)據(jù)庫(kù)的方法

4.MS SQL Server 示例:

4.1 導(dǎo)入模塊、創(chuàng)建連接:

python訪問(wèn)數(shù)據(jù)庫(kù)的方法

4.2 創(chuàng)建游標(biāo): 游標(biāo)創(chuàng)建之后就可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢更改了!

python訪問(wèn)數(shù)據(jù)庫(kù)的方法

4.3對(duì)數(shù)據(jù)進(jìn)行操作(創(chuàng)建表、插入行、更新數(shù)據(jù)、增加列、刪除行、列、表):

python訪問(wèn)數(shù)據(jù)庫(kù)的方法

4.4 查詢 獲取行:

python訪問(wèn)數(shù)據(jù)庫(kù)的方法

5.其他:

使用游標(biāo)的時(shí)候要注意, 每次連接只能有一個(gè)游標(biāo)查詢處于活躍狀態(tài)。 code演示:

python訪問(wèn)數(shù)據(jù)庫(kù)的方法

execute()循環(huán)和 executemany() 插入100000 條數(shù)據(jù)測(cè)速:

python訪問(wèn)數(shù)據(jù)庫(kù)的方法

看完了這篇文章,相信你對(duì)python訪問(wèn)數(shù)據(jù)庫(kù)的方法有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

標(biāo)題名稱:python訪問(wèn)數(shù)據(jù)庫(kù)的方法
新聞來(lái)源:http://chinadenli.net/article16/ihohdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站網(wǎng)站改版品牌網(wǎng)站制作自適應(yīng)網(wǎng)站微信小程序定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司