ios資料處理 SQLite基本知識

來源:互聯網
上載者:User

     在使用資料庫的時候,主要任務是建立和資料庫之間的串連,執行SQL語句。

     SQLite中有下面兩個重要的對象(指向結構體的指標):

sqlite3,

代表資料庫連接的對象。

sqlite3_stmt,

代表SQL語句的對象。

    SQLite中的重要函數:

sqlite3_open(), 

開啟資料庫的函數,傳回值為整型,指代了開啟操作的結果,若結果等於SQLITE_OK這個常量,則說明成功開啟資料庫。若開啟失敗,會返回相應的錯誤碼。

sqlite3_prepare(),

 要執行SQL語句,必須先把它編譯成位元組碼。sqlite3_prepare函數就是負責編譯SQL語句。

sqlite3_step(),

使用sqlite3_prepare函數將SQL語句編譯好了以後,可以使用step函數來執行。對於有傳回值的執行語句(如select),調用一次sqlite_step函數將會執行並記錄一行(row)有效結果到sqlite3_stmt裡。要繼續擷取後面的運行結果,就要再執行sqlite3_step函數直到所有結果都記錄完畢。比如,sqlite3_stmt中有語句“select * from studentTable order by id”,若結果包含多條資料,則使用sqlite3_step()函數只能得到第一行的內容,繼續調用該函數直到所有結果都已記錄完畢。而對於沒有傳回值的語句(如INSERT/UPDATE/DELETE),執行一次即可。

 sqlite3_column(),

對於select語句,在使用sqlite3_step運行後,需要將結果讀出來。實際上不存在一個叫sqlite3_column()的函數,這是一系列函數的代稱,它們共同的作用就是從當前的結果中按列號取出值。比如一個select語句運行後,其中的一條結果為 01 “what_if” "male"。這個結果就包含3列,那麼就可以利用該函數,找出特定某一列的值,根據實值型別的不同,需要調用不同的函數,比如針對第一列,類型為整型,調用sqlite3_column_int(stmt, 0)來返回第一列的值;而第二列的資料類型是文本(text),相應地,調用sqlite3_column_text(stmt, 1)得到第二列的文本資訊。該函數還有位元組類型(byte)、雙精確度型(double)等。

sqlite3_finalize(),

 sqlite3_stmt使用完畢,用sqlite3_finalize()函數來銷毀。如果把sqlite3_stmt看作對象的話,這個函數就相當於是它的解構函式。在結束使用sqlite3_stmt,必須要調用該函數,否則會造成記憶體泄露。

sqlite3_close(),

資料庫操作結束後,需要將資料庫連接關閉。用sqlite3_close()函數來關閉,顯然,這是和sqlite_open()成對出現的。在關閉之前,需要使用sqlite3_finalize()來銷毀所有sqlite3_stmt對象。

sqlite3_exec(),

sqlite3_exec()為執行sql語句提供了一種便捷的方法,只需要將sql語句的字串(char *)傳遞給該函數即可。我們指定回呼函數(callback)來處理執行後的傳回值。不過一般情況下,sqlite3_exec()函數多用於執行無傳回值的語句(CREATE/DROP等),對於有傳回值的操縱(如select),常結合使用sqlite3_prepare、sqlite3_step()、sqlite3_clumn()獲得執行結果。

 

 附表:

 最重要的SQLite API命令

1.函數:sqlite3_open(參數:檔案名稱、資料庫地址)                                                                                                                                                        開啟資料庫 
2.函數:sqlite3_prepare (參數: 資料庫、UTF-8格式的SQL、最大讀取長度、語句地址、結果地址)                                                                                          將UTF-8格式的SQL語句轉換為編譯後的語句,並返回指向該語句的指標,可將其傳遞給其他函數
3.函數:sqlite3_step ( 參數:編譯後的語句)                                                                                                                                                                  在編譯後的語句返回的結果中向前移一條記錄或返回錯誤                                                                                                                                                       
4.函數:sqlite3_column_int  (參數:編譯後的語句、欄位編號)                                                                                                                                           返回目前記錄中的一個int欄位。還有其他幾個類似的函數,它們返回目前記錄中的指定欄位 
5.函數:sqlite3_column_string (參數:編譯後的語句、欄位編號) 
 從目前記錄中返回一個char *,即一個字串,還有其他幾個類似的函數,它們返回目前記錄中的指定欄位
6.函數:sqlite3_finalize (參數:編譯後的語句) 
 刪除編譯後的語句
7.函數:sqlite3_close  (參數:資料庫) 
關閉資料庫
                                                                                          

                                                        

使用SQLite資料庫的一般步驟:

1.開啟資料庫;

2.以每次一條的方式準備語句;

3.遍曆結果--讀取欄位;

4.刪除語句; 

5.關閉資料庫。

 

也可以用sqlite3_exec()和sqlite3_get_table()來簡化上面的步驟。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.