P30 SQLite是一個開源的嵌入式關系數據庫,它在2000年由D. Richard Hipp發布,它的減少應用程序管理數據的開銷,SQLite可移植性好,很容易使用,很小,高效而且可靠。
P8 SQLite是一款非常流行的嵌入式數據庫,它支持SQL查詢,并且只用很少的內存。Android在運行時集成了SQLite,所以每個Android應用程序都可以使用SQLite數據庫。對數熟悉SQL的開發人員來時,使用SQLite相當簡單。可以,由于JDBC不適合手機這種內存受限設備,所以Android開發人員需要學習新的API來使用SQLite。本文主要講解SQLite在Android環境中的基本使用。SQLite介紹SQLite一個非常流行的嵌入式數據庫,它支持SQL語言,并且只利用很少的內存就有很好的性能。此外它還是開源的,任何人都可以使用它。
P29 SQLlite簡單教程
P21 Sqlite3的確很好用。小巧、速度快。但是因為非微軟的產品,幫助文檔總覺得不夠。這些天再次研究它,又有一些收獲,這里把我對sqlite3的研究列出來,以備忘記。這里要注明,我是一個跨平臺專注者,并不喜歡只用windows平臺。我以前的工作就是為unix平臺寫代碼。下面我所寫的東西,雖然沒有驗證,但是我已盡量不使用任何windows的東西,只使用標準C或標準C++。但是,我沒有嘗試過在別的系統、別的編譯器下編譯,因此下面的敘述如果不正確,則留待以后修改。下面我的代碼仍然用VC編寫,因為我覺得VC是一個很不錯的IDE,可以加快代碼編寫速度(例如配合Vassist)。下面我所說的編譯環境,是VC2003。
P4 SQLite 數據庫,是一個非常輕量級自包含(lightweight and self-contained)的DBMS,它可移植性好,很容易使用,很小,高效而且可靠。 ? SQLite嵌入到使用它的應用程序中,它們共用相同的進程空間,而不是單獨的一個進程。從外部看,它并不像一個RDBMS,但在進程內部,它卻是完整的,自包含的數據庫引擎。
P9 SQLite基本語法手冊。SQLite是一個軟件庫,用于實現自包含、非服務式、零配置、事務化的SQL數據庫引擎。SQLite是一個嵌入式SQL數據庫引擎,與其它大多數SQL數據庫不同的是,SQLite沒有獨立的服務進程。SQLite直接讀寫原始的磁盤文件,一個擁有多個表、索引、觸發器和視圖的完整SQL數據庫就包含在一個獨立的磁盤文件中。????
P10 前面也用到過sqlite,例如在對pickle模塊的學習,以及我所寫的下載糗事百科的程序中都大量的使用到了sqlite,這里將python對sqlite的支持抽取出來專門進行講解。 從python 2.5開始(前面的我就不知道了,沒用過~,現在用的python 3.0,相信可以用上5年吧),python提供了對sqlite3的內生支持,一般來說,可以在PythonDir\Dlls\文件夾下發現 sqlite3.dll和_sqlite3.pyd ,這2個文件是python支持sqlite3的基礎;其次就是下面說要描述的sqlite3模塊了。
P16 SQLite通過值的表示法來判斷其類型,下面就是SQLite的推理方法: ? SQL語句中用單引號或雙引號括起來的文字被指派為TEXT。 ? 如果文字是未用引號括起來的數據,并且沒有小數點和指數,被指派為INTEGER。 ? 如果文字是未用引號括起來的數據,并且帶有小數點或指數,被指派為REAL。 ? 用NULL說明的值被指派為NULL存儲類。 ? 如果一個值的格式為X'ABCD',其中ABCD為16進制數字,則該值被指派為BLOB。X前綴大小寫皆可。
P36 SQLite版本的的ALTER TABLE命令允許用戶重命名或添加新的字段到已有表中,不能從表中刪除字段。 RENAME TO語法用于重命名表名 [database-name.]table-name到new-table-name。這一命令不能用于在附加數據庫之間移動表,只能在同一個數據庫中對表進行重命名。
P25 Sqlite3的確很好用。小巧、速度快。但是因為非微軟的產品,幫助文檔總覺得不夠。這些天再次研究它,又有一些收獲,這里把我對sqlite3的研究列出來,以備忘記。這里要注明,我是一個跨平臺專注者,并不喜歡只用windows平臺。我以前的工作就是為unix平臺寫代碼。下面我所寫的東西,雖然沒有驗證,但是我已盡量不使用任何windows的東西,只使用標準C或標準C++。但是,我沒有嘗試過在別的系統、別的編譯器下編譯,因此下面的敘述如果不正確,則留待以后修改。下面我的代碼仍然用VC編寫,因為我覺得VC是一個很不錯的IDE,可以加快代碼編寫速度(例如配合Vassist)。
P51 本文分析的SQLite版本為3.6.18。現在已經變成3.6.20了,但本文中所涉及的內容變化不大。讀者最好能下載一個源程序,然后將本文與源程序對照閱讀。這樣也有利于發現本文的錯誤,說實話吧,我寫的時候是連分析帶猜的,錯誤肯定很多。參考文獻:1-The Definitive Guideto SQLite.Michael Owens:比較經典的SQLite著作。我邊看邊翻譯了其中的部分內容,但翻得不好,大家還是看原文吧。2-SQLite文件格式分析_v102.空轉:我寫的,寫得特好。現在是v102版,跟前面的版本相比增加了不少背景知識,對文件格式的介紹算是很全面了。看本文之前,應該先瀏覽一下此參考文獻。
P8 使 用sqlite的connect可以創建一個數據庫文件,上面我指明了路徑。當數據庫文件不存在的時候,它會自動創建。如果已經存在這個文件,則打開這個 文件。encoding指明保存數據所使用的編碼,這里cp936是 Python 中自帶的編碼,其實就是GBK編碼。cx為數據庫連接對象。
P10 SQLite是一個開源的嵌入式關系數據庫,它在2000年由D.RichardHipp發布,它的減少應用程序管理數據的開銷,SQLite可移植性好,很容易使用,很小,高效而且可靠。SQLite嵌入到使用它的應用程序中,它們共用相同的進程空間,而不是單獨的一個進程。從外部看,它并不像一個RDBMS,但在進程內部,它卻是完整的,自包含的數據庫引擎。嵌入式數據庫的一大好處就是在你的程序內部不需要網絡配置,也不需要管理。因為客戶端和服務器在同一進程空間運行。SQLite的數據庫權限只依賴于文件系統,沒有用戶帳戶的概念。SQLite有數據庫級鎖定,沒有網絡服務器。它需要的內存,其它開銷很小,適合用于嵌入式設備。你需要做的僅僅是把它正確的編譯到你的程序。
P2 BLOB(BinaryLargeObject):可存儲大型二進制對象,如圖形、視頻、聲音等文件。JAVA對SQLiteBLOB的操縱:存:直接把文件讀取到Byte數組中,再把Byte數組直接插入到數據庫。
P51 本文分析的SQLite版本為3.6.18。現在已經變成3.6.20了,但本文中所涉及的內容變化不大。讀者最好能下載一個源程序,然后將本文與源程序對照閱讀。這樣也有利于發現本文的錯誤,說實話吧,我寫的時候是連分析帶猜的,錯誤肯定很多。
P23 SQLite對于整個數據庫文件進行讀取/寫入鎖定. 這意味著如果任何進程讀取了數據庫中的某一部分, 其他所有進程都不能再對該數據庫的任何部分進行寫入操作. 同樣的, 如果任何一個進程在對數據庫進行寫入操作, 其他所有進程都不能再讀取該數據庫的任何部分. 對于大多數情況這不算是什么問題. 在這些情況下每個程序使用數據庫的時間都很短暫, 并且不會獨占, 這樣鎖定至多會存在十幾毫秒. 但是如果有些程序需要高并發, 那么這些程序就需要尋找其他的解決方案了
P SQLite庫可以解析大部分標準SQL語言。但它也省去了一些特性 并且加入了一些自己的新特性。這篇文檔就是試圖描述那些SQLite支持/不支持的SQL語法的。 查看關鍵字列表。
P36 SQLite版本的的ALTER TABLE命令允許用戶重命名或添加新的字段到已有表中,不能從表中刪除字段。 RENAME TO語法用于重命名表名 [database-name.]table-name到new-table-name。這一命令不能用于在附加數據庫之間移動表,只能在同一個數據庫中對表進行重命名。
P117 SQLite作為一個開源的嵌入式數據庫產品,具有系統開銷小,檢索效率高的特性,適用于手機、PDA、機頂盒設備等電器,并且作為嵌入式數據庫在可下載的消費類應用程序中運行的很好。這篇文章介紹嵌入式數據庫產品SQLite 的技術特點,并著重討論研究與Java語言之間的接口,并以實例說明如何使用JAVA 開發基于SQLite 的應用程序。
P41 前序Sqlite3的確很好用。小巧、速度快。但是因為非微軟的產品,幫助文檔總覺得不夠。這些天再次研究它,又有一些收獲,這里把我對sqlite3的研究列出來,以備忘記。