SQLite學習心得

來源:互聯網
上載者:User

標籤:

   SQLite是一款很有名氣的小型開源跨平台資料庫,作為目前最流行的開源嵌入式關係型資料庫,在系統結構設計中正在扮演著越來越重要的角色。

   本文主要沿著 http://www.cppblog.com/weiym/archive/2012/10/16/193357.html 這篇文章裡面的學習指導思想,來一步步學習SQLite,為的是快速在實際開發中利用好SQLite。

1. SQLite的優缺點以及適用場合 1. 1 優點

    輕量級:       與傳統的C/S模式的資料庫軟體不同,它是進程內的資料庫引擎,不存在用戶端和伺服器。使用SQLite,只需要帶上一個幾百K大小的動態庫就可以:
    綠色組件:     SQLite的核心引擎本身不依賴第三方軟體,隨插即用。
    單一檔案:      資料庫中所有的資訊(比如表、視圖、觸發器等)都儲存在單個檔案內,可以拷貝到其他地方,照用不誤。
    跨平台 :        不僅僅支援主流作業系統(Windows/Linux),還支援很多小型嵌入式系統(Android,WP,Vxworks)。
    查詢效率極高 : SQLite的API不區分當前資料庫是儲存在記憶體中還是在磁碟檔案中,為了提高效率,可以切換為記憶體方式。只需要在開始時將資料庫載入記憶體,讀寫完成後,再把記憶體資料庫dump會磁碟檔案上就可以,讀寫記憶體比讀寫磁碟快很多倍。  
    

1.2 缺點

    並發訪問的鎖機制: SQLite在並發讀寫方面的效能一直不太理想,在有大量insert,update訪問時,不建議使用。

   SQL標準支援不全 :

1.3適用場合

    適合查詢速度要求較高,記憶體佔用較少的場合,尤其是嵌入式作業系統,如各種手機作業系統,低並發web(99.9%網站是低並發),php環境裡原生支援SQLite,asp.net/.net winform裡可以很方便的使用System.Data.SQLite.

    SQLite本身是C寫的,內建的API介面也是C介面,所以用C/C++來使用是最直接的了。對於Java語言來說,可以通過SQLite的JDBC介面方式使用SQLite,對於Python,pysqlite是操作SQLite的首選,它已經是Python的標準庫之一。

    SQLite使用的授權協議時Public Domain協議,可以大膽的使用。

2. SQL的核心組件

    SQL中有兩個核心對象,分別為database_connection和prepared_statement 的使用。

    database_connection對象是通過sqllite3_open()介面函數建立並返回的,在應用程式使用任何其他SQLite介面函數之前,必須先調用該函數用於初始化。

    prepared_statement對象可以簡單理解為編譯後的SQL語句,所有和SQL語句執行相關的函數需要該對象作為輸入參數用於完成指定SQL操作。

   

   SQL提供的核心介面函數有

   sqlite_open

   sqlite_prepare

   sqlite_step(評估prepared_statement對象)

   sqlite3_column(擷取當前行指定列的資料)

   sqlite3_finalize  用於銷毀prepared_statement對象

   sqlite_close     用於關閉database_connection對象

3. 在CodeBlock上整合SQLite

     首先去SQLite官網上面下載最新版的源碼,http://www.sqlite.org/download.html,我下載的是sqlite-amalgamation-3080704.zip版本。

     解壓此壓縮包,得到如下幾個檔案:

    

     往你的項目裡面添加上述檔案(除了shell.c檔案),然後按Ctrl+F9編譯,就可以。

     這麼強大的SQLite,真正起作用的,只有三個檔案,不由得佩服開發人員。通過閱讀官網上的編譯入門資料,得知源碼有兩種下載版本,一種是混合式的,上述下載的就是這樣的,它在sqlite3.c中實現了全部的SQLite庫中的內容,sqlite3.h定義了sqlite3.c的介面函數,很容易整合進所需要的工程檔案中。

    

 

 

 

 

    常用的SQLite的Shell命令:

    .tables 查看當前的SQLite資料庫命令

    .schema 查看建立SQLite資料庫的命令                               

 

參考連結:

http://stackoverflow.com/questions/11574280/how-to-use-sqlite-in-c-program-using-codeblocks

 

   

 

 

附錄:

SQLite的官方首頁:
http://www.sqlite.org/

SQLite中文站:
http://www.sqlite.com.cn/

System.Data.SQLite:
http://sqlite.phxsoftware.com/

sql學習筆記之 嵌入式資料庫(sqlite,firebird)
http://www.cnblogs.com/ljzforever/archive/2010/03/09/1681453.html

SQLite學習心得

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.