




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Python標(biāo)準(zhǔn)庫(kù)之?dāng)?shù)據(jù)庫(kù)sqlite3目錄1、創(chuàng)建數(shù)據(jù)庫(kù)2、插入數(shù)據(jù)3、查詢4、更新與刪除Python自帶一個(gè)輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù)SQLite。這一數(shù)據(jù)庫(kù)使用SQL語(yǔ)言。SQLite作為后端數(shù)據(jù)庫(kù),可以搭配Python建網(wǎng)站,或者制作有數(shù)據(jù)存儲(chǔ)需求的工具。SQLite還在其它領(lǐng)域有廣泛的應(yīng)用,比如HTML5和移動(dòng)端。Python標(biāo)準(zhǔn)庫(kù)中的sqlite3提供該數(shù)據(jù)庫(kù)的接口。
我將創(chuàng)建一個(gè)簡(jiǎn)單的關(guān)系型數(shù)據(jù)庫(kù),為一個(gè)書(shū)店存儲(chǔ)書(shū)的分類和價(jià)格。數(shù)據(jù)庫(kù)中包含兩個(gè)表:category用于記錄分類,book用于記錄某個(gè)書(shū)的信息。一本書(shū)歸屬于某一個(gè)分類,因此book有一個(gè)外鍵(foreignkey),指向catogory表的主鍵id。
1、創(chuàng)建數(shù)據(jù)庫(kù)
我首先來(lái)創(chuàng)建數(shù)據(jù)庫(kù),以及數(shù)據(jù)庫(kù)中的表。在使用connect()連接數(shù)據(jù)庫(kù)后,我就可以通過(guò)定位指針cursor,來(lái)執(zhí)行SQL命令:
#ByVamei
importsqlite3
#test.dbisafileintheworkingdirectory.
conn=sqlite3.connect("test.db")
c=conn.cursor()
#createtables
c.execute('''CREATETABLEcategory
(idintprimarykey,sortint,nametext)''')
c.execute('''CREATETABLEbook
(idintprimarykey,
sortint,
nametext,
pricereal,
categoryint,
FOREIGNKEY(category)REFERENCEScategory(id))''')
#savethechanges
mit()
#closetheconnectionwiththedatabase
conn.close()
SQLite的數(shù)據(jù)庫(kù)是一個(gè)磁盤(pán)上的文件,如上面的test.db,因此整個(gè)數(shù)據(jù)庫(kù)可以方便的移動(dòng)或復(fù)制。test.db一開(kāi)始不存在,所以SQLite將自動(dòng)創(chuàng)建一個(gè)新文件。
利用execute()命令,我執(zhí)行了兩個(gè)SQL命令,創(chuàng)建數(shù)據(jù)庫(kù)中的兩個(gè)表。創(chuàng)建完成后,保存并斷開(kāi)數(shù)據(jù)庫(kù)連接。
2、插入數(shù)據(jù)
上面創(chuàng)建了數(shù)據(jù)庫(kù)和表,確立了數(shù)據(jù)庫(kù)的抽象結(jié)構(gòu)。下面將在同一數(shù)據(jù)庫(kù)中插入數(shù)據(jù):
#ByVamei
importsqlite3
conn=sqlite3.connect("test.db")
c=conn.cursor()
books=[(1,1,'CookRecipe',3.12,1),
(2,3,'PythonIntro',17.5,2),
(3,2,'OSIntro',13.6,2),
#execute"INSERT"
c.execute("INSERTINTOcategoryVALUES(1,1,'kitchen')")
#usingtheplaceholder
c.execute("INSERTINTOcategoryVALUES(,,)",[(2,2,'computer')])
#executemultiplecommands
c.executemany('INSERTINTObookVALUES(,,,,)',books)
mit()
conn.close()
插入數(shù)據(jù)同樣可以使用execute()來(lái)執(zhí)行完整的SQL語(yǔ)句。SQL語(yǔ)句中的參數(shù),使用""作為替代符號(hào),并在后面的參數(shù)中給出具體值。這里不能用Python的格式化字符串,如"%s",因?yàn)檫@一用法容易受到SQL注入攻擊。
我也可以用executemany()的方法來(lái)執(zhí)行多次插入,增加多個(gè)記錄。每個(gè)記錄是表中的一個(gè)元素,如上面的books表中的元素。
3、查詢
在執(zhí)行查詢語(yǔ)句后,Python將返回一個(gè)循環(huán)器,包含有查詢獲得的多個(gè)記錄。你循環(huán)讀取,也可以使用sqlite3提供的fetchone()和fetchall()方法讀取記錄:
#ByVamei
importsqlite3
conn=sqlite3.connect('test.db')
c=conn.cursor()
#retrieveonerecord
c.execute('SELECTnameFROMcategoryORDERBYsort')
print(c.fetchone())
print(c.fetchone())
#retrieveallrecordsasalist
c.execute('SELECT*FROMbookWHEREbook.category=1')
print(c.fetchall())
#iteratethroughtherecords
forrowinc.execute('SELECTname,priceFROMbookORDERBYsort'):
print(row)
4、更新與刪除
你可以更新某個(gè)記錄,或者刪除記錄:
#ByVamei
conn=sqlite3.connect("test.db")
c=conn.cursor()
c.execute('UPDATEbookSETprice=WHER
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 地勘鉆機(jī)轉(zhuǎn)讓協(xié)議書(shū)
- 合伙經(jīng)營(yíng)培訓(xùn)協(xié)議書(shū)
- 衛(wèi)生協(xié)管承包協(xié)議書(shū)
- 變革中的財(cái)務(wù)管理考題及答案
- 分家房子歸屬協(xié)議書(shū)
- 勞務(wù)糾紛調(diào)解協(xié)議書(shū)
- 工程法規(guī)倫理困境試題及答案
- 財(cái)務(wù)管理考試高效書(shū)籍試題及答案
- 2025年工業(yè)污染源全面達(dá)標(biāo)排放計(jì)劃實(shí)施方案對(duì)工業(yè)廢物處理的要求
- 人工智能大模型的未來(lái)潛力與市場(chǎng)需求趨勢(shì)分析
- Java高級(jí)軟件開(kāi)發(fā)面試題及答案
- 3.4 羧酸的衍生物 課件高二下學(xué)期化學(xué)人教版(2019)選擇性必修3
- 2025年消防安全培訓(xùn)考試試卷及完整答案
- 天津2025年天津市面向昌都籍未就業(yè)少數(shù)民族高校畢業(yè)生招聘事業(yè)單位人員筆試歷年參考題庫(kù)附帶答案詳解
- 2025年安全生產(chǎn)月主題培訓(xùn)課件:如何查找身邊安全隱患
- 別樣的碰碰車大戰(zhàn)
- 2024年遼寧省大連市初中學(xué)業(yè)水平考試模擬道德與法治試卷
- 環(huán)境噪聲監(jiān)測(cè)技術(shù)規(guī)范結(jié)構(gòu)傳播固定設(shè)備室內(nèi)噪聲
- 醫(yī)院版LIS操作手冊(cè)(共84頁(yè))
- 基于蓄熱式加熱爐PLC控制系統(tǒng)設(shè)計(jì)(共43頁(yè))
- 瓦楞紙箱檢驗(yàn)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論