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