




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第Python標準庫之數據庫sqlite3目錄1、創建數據庫2、插入數據3、查詢4、更新與刪除Python自帶一個輕量級的關系型數據庫SQLite。這一數據庫使用SQL語言。SQLite作為后端數據庫,可以搭配Python建網站,或者制作有數據存儲需求的工具。SQLite還在其它領域有廣泛的應用,比如HTML5和移動端。Python標準庫中的sqlite3提供該數據庫的接口。
我將創建一個簡單的關系型數據庫,為一個書店存儲書的分類和價格。數據庫中包含兩個表:category用于記錄分類,book用于記錄某個書的信息。一本書歸屬于某一個分類,因此book有一個外鍵(foreignkey),指向catogory表的主鍵id。
1、創建數據庫
我首先來創建數據庫,以及數據庫中的表。在使用connect()連接數據庫后,我就可以通過定位指針cursor,來執行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的數據庫是一個磁盤上的文件,如上面的test.db,因此整個數據庫可以方便的移動或復制。test.db一開始不存在,所以SQLite將自動創建一個新文件。
利用execute()命令,我執行了兩個SQL命令,創建數據庫中的兩個表。創建完成后,保存并斷開數據庫連接。
2、插入數據
上面創建了數據庫和表,確立了數據庫的抽象結構。下面將在同一數據庫中插入數據:
#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()
插入數據同樣可以使用execute()來執行完整的SQL語句。SQL語句中的參數,使用""作為替代符號,并在后面的參數中給出具體值。這里不能用Python的格式化字符串,如"%s",因為這一用法容易受到SQL注入攻擊。
我也可以用executemany()的方法來執行多次插入,增加多個記錄。每個記錄是表中的一個元素,如上面的books表中的元素。
3、查詢
在執行查詢語句后,Python將返回一個循環器,包含有查詢獲得的多個記錄。你循環讀取,也可以使用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、更新與刪除
你可以更新某個記錄,或者刪除記錄:
#ByVamei
conn=sqlite3.connect("test.db")
c=conn.cursor()
c.execute('UPDATEbookSETprice=WHER
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025福建武夷旅游集團有限公司招聘17人筆試參考題庫附帶答案詳解
- 2025河南永銀化工實業校園招聘26人筆試參考題庫附帶答案詳解
- 2025新疆機場集團阿勒泰管理分公司招聘36人筆試參考題庫附帶答案詳解
- 2025年云南中煙工業有限責任公司招聘(430人)筆試參考題庫附帶答案詳解
- 紡織工程師考試心理準備與試題及答案
- 考小車c本試題及答案
- 色彩轉移測試題及答案
- 鐵路編制筆試題型及答案
- 二手車合作協議書合同
- 營銷活動面試題及答案
- 材料力學(劉鴻文版)學習通課后章節答案期末考試題庫2023年
- 滯期費速遣費的計算
- 省級特色專業安徽省高等學校質量工程項目進展報告
- 電鍍鉻作業指導書
- DEFORM-3D模擬控制(五):網格重劃分
- 2023年江蘇南京市市屬國企高層次人才招聘筆試參考題庫附帶答案詳解
- 先導化合物的優化和結構修飾藥物化學專家講座
- COMMERCIAL INVOICE 商業發票模板
- 基于TLR4-ACE2軸研究鐵死亡在幽門螺桿菌感染致病中的作用及機制
- 籃球比賽計時計分器設計
- 并購重組試題
評論
0/150
提交評論