第三章認識dbms7講40丨sqlite用存儲記錄_第1頁
第三章認識dbms7講40丨sqlite用存儲記錄_第2頁
第三章認識dbms7講40丨sqlite用存儲記錄_第3頁
第三章認識dbms7講40丨sqlite用存儲記錄_第4頁
第三章認識dbms7講40丨sqlite用存儲記錄_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

是在2000年發(fā)布的,到目前為止已經(jīng)有19年了。一直采用C語言編寫,采用C語言而非C++面向對象的方式,可以提升代碼底層的執(zhí)行效率。但也有一些優(yōu)勢它的優(yōu)勢在于非常輕量級,數(shù)據(jù)非常高效,查詢和操作數(shù)據(jù)簡單方便。此外不RDBMS相比,約束少易操作,可以有效減少服務器的壓力。 常用于小到中型的數(shù)據(jù),不適用高并發(fā)的情況。比如在本地可以 ,即使是幾百M的數(shù)據(jù)文件,使用 但是本身的服務器就不能使用 了,因為 同一時間只允許一個寫操作,作為簡化版的數(shù)據(jù)庫,沒有用戶管理功能,在語法上也有一些自己的“方言”。比如在SQL中的SELECT語句,可以使用一個特殊的操作符來拼接兩個列。在MySQL中會使用函數(shù)concat,而在、PostgreSQL、Oracle和Db2中使用||號,比如:SELECTMesLocalID||MessageFROM"Chat_1234"。這個語句代表的是從Chat_1234數(shù)據(jù)表中查詢MesLocalID和Message字段并且將他們 中不支持RIGHTJOIN,因此你需要將右外連接轉換為左外連接,也就是LEFTJOIN,寫成下面這樣:代1SELECT*FROMteamLEFTJOINyerONyer.team_id= 總的來說支持SQL準的RDBMS法都相似,只是不同的DBMS有一些屬于自己的“方言”,我們使用不同的DBMS的時候,需要注意。在Python中使用我之前介紹過如何在Python使用MySQL,其中會使用到DBAPI范(如下圖所示)?;贒BAPI規(guī)范,我們可以對數(shù)據(jù)庫進行連接、交互以及異常的處理。在Python中使用 也會使用到DBAPI規(guī)范,與使用MySQL的交互方式一樣,也會用到connection、cursor和exceptions。在Python中集成了 應的工具包就可以直接使用。下面我們就來看下如何在Python中使用 在使用之前我們需要進行,使用代1import然后我們可以使 3創(chuàng)建數(shù)據(jù)庫連接代1conn=這里我們連接的是wucai.db這個文件,如果沒有這個文件,上面的調用會自動在相的工程路徑里進行創(chuàng)建,然后我們可以使用conn操作連接,通過會話連接conn來創(chuàng)建標代1cur=通過這一步,我們得到了游標cur,然后可以使用execute法來執(zhí)行各種DML,比如插入,刪除,更新等,當然我們也可以進行SQL查詢,用的同樣是execute()方法。比如我們想要創(chuàng)建heros據(jù)表,以及相應的字段id、name、hp_max、mp_max、代1cur.execute("CREATETABLEIFNOTEXISTSheros(idintprimarykey,nametext,hp_max在創(chuàng)建之后,我們可以使用execute()方法來添加一條數(shù)據(jù)代1cur.execute('insertintoherosvalues(?,?,?,?,?)',(10000,'夏侯惇',7350,1746,'需要注意的是,一條一條插入數(shù)據(jù)太麻煩,我們也可以批量插入,這里會使用executemany方法,這時我們傳入的參數(shù)就是一個元組,比如代1cur.executemany('insertintoherosvalues(?,?,?,?, ((10000,'夏侯惇',7350,1746,' (10001,'鐘無艷',7000,1760,'戰(zhàn)士4(10002,'張飛100,5(10003,'牛魔1926, (10004,'呂布7344,0,'戰(zhàn)士如果我們想要對heros數(shù)據(jù)表進行查詢,同樣使用execute執(zhí)行SQL語句代1cur.execute("SELECTid,name,hp_max,mp_max,role_mainFROM這時cur會指向查詢結果集的第一個位置,如果我們想要獲取數(shù)據(jù)有以下幾種方cur.fetchone()方法,獲取一條記 any(n)方法,獲取n條記錄cur.fetchall()方法,獲取全部數(shù)據(jù)行比如獲取全部的結果集,可以寫成這樣代1result= 代上面這個過程的完整代碼如代import#創(chuàng)建數(shù)據(jù)庫連conn=#獲取游cur=#創(chuàng)建數(shù)cur.execute("CREATETABLEIFNOTEXISTSheros(idintprimarykey,nametext,hp_max#插入數(shù)cur.executemany('insertintoherosvalues(?,?,?,?, ((10000, ',7350,1746,' (10001,' ',7000,1760,'戰(zhàn)士'100,'1926, (10004,' 7344,0,'戰(zhàn)士cur.execute("SELECTid,name,hp_max,mp_max,role_mainFROMresult=#提交事#關閉游#關閉數(shù)據(jù)庫連除了使用Python操作之外,在整個操作過程中,我們同樣可以使用navicat數(shù)據(jù)庫可視化工具來查看和管理。通過查 第一步,使用iTunes備 ;第二步,在電腦中查找備份文件當我們備份好數(shù)據(jù)之后,需要在本地找到備份的文件,如果是windows可以C:\Users\XXXX\AppData\Roaming\Apple Sync\Backup這個路找到備份文件第三步,查找Manifest.db在備份文件夾中會存在Manifest.db這個文件定義了蘋果系統(tǒng)中各種備份所在的文第四步,查找MM.Manifest.db本身是數(shù)據(jù)文件,通過我們能看到文件中包含了Files數(shù)據(jù)表,這張表中有fileID、 和relativePath等字段。的文件為MM.,我們可以直接通過SQL語句來查詢下它的位置(也就是fileID)。代SELECT*FROMFilesWHERErelativePathLIKE'%MM. 備份中有2個MM.文件,這些都是 第五步,分析找到的MM.。這里我們需要在備份文件夾中查找相關的fileID,比如 d7b858a01e3ddb933ce13a9a01f79aa找到這個文件后,我們可以一份,取名為weixin.db,這樣就可以使用navicat對這個會與每一個人的都保存成一張數(shù)據(jù)表,在數(shù)據(jù)表中會有MesLocalID、Message、Status等相應的字段,它們分別代表在當前中的ID、聊天內(nèi)容和聊天內(nèi)容代SELECTnameFROM_masterWHEREtype='table'ANDnameLIKE'Chat\_%'escape這里需要說明的是_master是 的系統(tǒng)表,數(shù)據(jù)表是只讀的,里面保存了數(shù)據(jù)庫中的數(shù)據(jù)表的名稱。的數(shù)據(jù)表都是以Chat_開頭的,因為(_)屬于特殊字符,在LIKE語句中會將(_)作為通配符。所以如果我們想要對開頭為Chat_的文件名進行匹配,就需要用escape對這個特殊字符做轉義。 的內(nèi)容。在使用 的時候,需要注意 有自己的方言,比如在進行表連接查詢的時候不支持RIGHTJOIN,需要將其轉換成LEFTJOIN等。同時,我們在使用execute()方法的時候,盡量采用帶有參數(shù)的SQL語句,以免被SQL注學習完今天的內(nèi)容后,不如試試用SQL查詢來查找本地的吧最后留一道思考題吧。請你使用SQL查詢對 ,還是Android都可以找到

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論