Python編程從入門到實(shí)戰(zhàn)-輕松過二級(jí) (思政版)(第2版) 課件 Ch11 數(shù)據(jù)庫訪問基礎(chǔ)_第1頁
Python編程從入門到實(shí)戰(zhàn)-輕松過二級(jí) (思政版)(第2版) 課件 Ch11 數(shù)據(jù)庫訪問基礎(chǔ)_第2頁
Python編程從入門到實(shí)戰(zhàn)-輕松過二級(jí) (思政版)(第2版) 課件 Ch11 數(shù)據(jù)庫訪問基礎(chǔ)_第3頁
Python編程從入門到實(shí)戰(zhàn)-輕松過二級(jí) (思政版)(第2版) 課件 Ch11 數(shù)據(jù)庫訪問基礎(chǔ)_第4頁
Python編程從入門到實(shí)戰(zhàn)-輕松過二級(jí) (思政版)(第2版) 課件 Ch11 數(shù)據(jù)庫訪問基礎(chǔ)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第二版本章要點(diǎn):數(shù)據(jù)庫基礎(chǔ)Python數(shù)據(jù)庫訪問模塊使用sqlite3模塊連接和操作SQLite數(shù)據(jù)庫使用SQLiteStudio查看和維護(hù)SQLite數(shù)據(jù)庫第11章數(shù)據(jù)庫訪問基礎(chǔ)11.1數(shù)據(jù)庫基礎(chǔ)數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)的倉庫,即存儲(chǔ)在計(jì)算機(jī)系統(tǒng)中結(jié)構(gòu)化的、可共享的相關(guān)數(shù)據(jù)的集合數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)用于管理數(shù)據(jù)的計(jì)算機(jī)軟件定義數(shù)據(jù)、操作數(shù)據(jù)以及維護(hù)數(shù)據(jù)目前流行的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品適合于企業(yè)用戶的網(wǎng)絡(luò)版DBMS:如Oracle、MicrosoftSQLServer、IBMDB2等適合于個(gè)人用戶的桌面DBMS:如MicrosoftAccess等數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS)計(jì)算機(jī)硬件、操作系統(tǒng)、DBMS、開發(fā)工具、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員(DatabaseAdministrator,DBA)、用戶數(shù)據(jù)庫模型現(xiàn)實(shí)世界的數(shù)據(jù)可以抽象為概念模型(ConceptualModel),也稱為信息模型。信息模型可以轉(zhuǎn)換為數(shù)據(jù)庫模型概念模型最常用的是實(shí)體-聯(lián)系(Entity-Relationship)方法。實(shí)體-聯(lián)系方法把世界看作是由實(shí)體(Entity)和聯(lián)系(Relationship)構(gòu)成的實(shí)體是指現(xiàn)實(shí)世界中具有一定特征或?qū)傩圆⑴c其它實(shí)體有聯(lián)系的對(duì)象,在關(guān)系模型中實(shí)體通常是以表的形式來表現(xiàn)。表的一行描述實(shí)體的一個(gè)實(shí)例,表的每一列描述實(shí)體的一個(gè)特征或?qū)傩月?lián)系是指實(shí)體之間的對(duì)應(yīng)關(guān)系,通過聯(lián)系就可以使用一個(gè)實(shí)體的信息來查找另一個(gè)實(shí)體的信息。聯(lián)系可以分為以下三種E-R圖E-R圖也稱實(shí)體-聯(lián)系圖(EntityRelationshipDiagram),提供了表示實(shí)體類型、屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型。E-R圖通常包含以下四個(gè)部分。(1)矩形框:表示實(shí)體,在框中記入實(shí)體名。(2)菱形框:表示聯(lián)系,在框中記入聯(lián)系名。(3)橢圓形框:表示實(shí)體或聯(lián)系的屬性,將屬性名記入框中。對(duì)于主屬性名,則在其名稱下劃一條下畫線。(4)連線:實(shí)體與屬性之間、實(shí)體與聯(lián)系之間、聯(lián)系與屬性之間用直線相連,并在直線上標(biāo)注聯(lián)系的類型常用的數(shù)據(jù)庫模型層次模型(HierarchicalModel)01網(wǎng)狀模型(NetworkModel)02關(guān)系模型(RelationalModel)03面向?qū)ο蟮臄?shù)據(jù)模型(ObjectOrientedModel)04關(guān)系數(shù)據(jù)庫關(guān)系模型世界由實(shí)體(Entity)和聯(lián)系(Relationship)構(gòu)成三種聯(lián)系數(shù)據(jù)庫中的表行(Row)列(Column)主關(guān)鍵字(PrimaryKey)用于唯一確定一條記錄11.2Python數(shù)據(jù)庫訪問模塊通用數(shù)據(jù)庫訪問模塊:ODBC&JDBC專用數(shù)據(jù)庫訪問模塊:

表17-1SQLite數(shù)據(jù)庫和sqlite3模塊SQLite是一款開源的輕型的數(shù)據(jù)庫SQLite支持的數(shù)據(jù)類型包括:NULL、INTEGER、REAL、TEXT和BLOB,分別對(duì)應(yīng)Python的數(shù)據(jù)類型:None、int、float、str和bytessqlite3模塊提供訪問和操作數(shù)據(jù)庫sqlite的各種功能11.3使用sqlite3模塊連接和操作SQLite數(shù)據(jù)庫1.導(dǎo)入相應(yīng)的數(shù)據(jù)庫模塊2.建立數(shù)據(jù)庫連接,返回Connection對(duì)象3.創(chuàng)建游標(biāo)對(duì)象cur4.使用Cursor對(duì)象的execute執(zhí)行SQL命令返回結(jié)果5.獲取游標(biāo)的查詢結(jié)果集6.數(shù)據(jù)庫的提交和回滾7.關(guān)閉Cursor對(duì)象和Connection對(duì)象創(chuàng)建數(shù)據(jù)庫和表【例11.1】創(chuàng)建數(shù)據(jù)庫和表。創(chuàng)建數(shù)據(jù)庫sales,并在其中創(chuàng)建表region,表中包含兩個(gè)列:id和name,其中id為主碼(primarykey)importsqlite3#創(chuàng)建SQLite數(shù)據(jù)庫:c:\Pythonb\ch11\sales.dbcon=sqlite3.connect(r"c:\Pythonb\ch11\sales.db")#創(chuàng)建表regions,包含兩個(gè)列,id(主碼)和namecon.execute("createtableregion(idprimarykey,name)")數(shù)據(jù)庫表的插入、更新和刪除操作【例11.2】數(shù)據(jù)庫表記錄的插入、更新和刪除操作示例importsqlite3regions=[("021","上海"),('022',"天津"),("023","重慶"),("024","沈陽")]#打開SQLite數(shù)據(jù)庫:c:\Pythonpa\ch17\sales.dbcon=sqlite3.connect(r"c:\Pythonpa\ch17\sales.db")#使用不同的方法分別插入一行數(shù)據(jù)con.execute("insertintoregion(id,name)values('020','廣東')")con.execute("insertintoregion(id,name)values(?,?)",('001','北京'))#插入多行數(shù)據(jù)con.executemany("insertintoregion(id,name)values(?,?)",regions)#修改一行數(shù)據(jù)con.execute("updateregionsetname=?whereid=?",('廣州','020'))#刪除一行數(shù)據(jù)n=con.execute("deletefromregionwhereid=?",("024",))print('刪除了',n.rowcount,'行記錄')mit()#提交con.close()#關(guān)閉數(shù)據(jù)庫數(shù)據(jù)庫和表的查詢操作【例11.3】查詢數(shù)據(jù)表中的記錄信息importsqlite3#打開SQLite數(shù)據(jù)庫:c:\Pythonb\ch11\sales.dbcon=sqlite3.connect(r"c:\Pythonb\ch11\sales.db")#查詢數(shù)據(jù)庫表的記錄內(nèi)容cur=con.execute("selectid,namefromregion")forrowincur:#循環(huán)輸出結(jié)果print(row)11.4使用SQLiteStudio查看和維護(hù)SQLite數(shù)據(jù)庫使用SQLite可視化工具,可以方便查看程序運(yùn)行后更新數(shù)據(jù)庫的結(jié)果【例11.4】下載、安裝和使用SQLiteStudio.exe(1)下載SQLiteStudio。在瀏覽器中輸入SQLiteStudio官網(wǎng)地址https://sqlitestudio.pl/,下載最新版本(sqlitestudio-3.4.4.zip)。(2)運(yùn)行SQLiteStudio。解壓縮下載的文件到本地任何目錄下,雙擊運(yùn)行解壓縮的程序SQLiteStudio.exe,打開SQLiteStudio。(3)打開數(shù)據(jù)庫。按快捷鍵“Ctrl+O”,選擇打開數(shù)據(jù)“c:\pythonb\ch11\jwxt.db”,查看數(shù)據(jù)庫中表的結(jié)構(gòu),或者查看表的數(shù)據(jù)復(fù)習(xí)題:

單選題填空題思考

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論