SQLLite (一)基本介绍
SQLite是遵守ACID的關系型數據庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。
注:ACID,指數據庫事務正確執行的四個基本要素的縮寫。包含:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。一個支持事務(Transaction)的數據庫系統,必需要具有這四種特性,否則在事務過程(Transaction processing)當中無法保證數據的正確性,交易過程極可能達不到交易方的要求。
SQLite,作為一款輕型的數據庫,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數據庫管理系統來講,它的處理速度比他們都快。
不像常見的客戶-服務器范例,SQLite引擎不是個程序與之通信的獨立進程,而是連接到程序中成為它的一個主要部分。所以主要的通信協議是在編程語言內的直接API調用。這在消耗總量、延遲時間和整體簡單性上有積極的作用。整個數據庫(定義、表、索引和數據本身)都在宿主主機上存儲在一個單一的文件中。它的簡單的設計是通過在開始一個事務的時候鎖定整個數據文件而完成的。
注:官方網站是:http://www.sqlite. org或者http://www.sqlite .com .cn,能在上面獲得源代碼和文檔。
特性:
1. ACID事務
2. 零配置 – 無需安裝和管理配置 3. 儲存在單一磁盤文件中的一個完整的數據庫 4. 數據庫文件可以在不同字節順序的機器間自由的共享 5. 支持數據庫大小至2TB 6. 足夠小, 大致3萬行C代碼, 250K 7. 比一些流行的數據庫在大部分普通數據庫操作要快 8. 簡單, 輕松的API 9. 包含TCL綁定, 同時通過Wrapper支持其他語言的綁定 10. 良好注釋的源代碼, 并且有著90%以上的測試覆蓋率 11. 獨立: 沒有額外依賴 12. Source完全的Open, 你可以用于任何用途, 包括出售它 13. 支持多種開發語言,C, PHP, Perl, Java, C#,PythonSQLite的數據類型
首先你會接觸到一個讓你驚訝的名詞: Typelessness(無類型). 對! SQLite是無類型的. 這意味著你可以保存任何類型的數據到你所想要保存的任何表的任何列中, 無論這列聲明的數據類型是什么(只有在一種情況下不是, 稍后解釋). 對于SQLite來說對字段不指定類型是完全有效的. 如:
Create Table ex1(a, b, c); 誠然SQLite允許忽略數據類型, 但是仍然建議在你的Create Table語句中指定數據類型. 因為數據類型對于你和其他的程序員交流, 或者你準備換掉你的數據庫引擎時能起到一個提示或幫助的作用. SQLite支持常見的數據類型, 如: CREATE TABLE ex2( a VARCHAR(10), b NVARCHAR(15), c TEXT, d INTEGER, e FLOAT, f BOOLEAN, g CLOB, h BLOB, i TIMESTAMP, j NUMERIC(10,5) k VARYING CHARACTER (24), l NATIONAL VARYING CHARACTER(16) ); 前面提到在某種情況下, SQLite的字段并不是無類型的. 即在字段類型為”Integer Primary Key”時.
后續文章講基于ios,介紹c風格的sqllite數據庫操作。
總結
以上是生活随笔為你收集整理的SQLLite (一)基本介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用SQLite3存储和读取数据
- 下一篇: SQLLite (二) :sqlite3