基於sqlite3建立資料庫 iOS

2021-09-01 23:42:37 字數 1832 閱讀 1824

與關聯式資料庫進行互動的標準sqlite命令類似於sql,包括create、select、insert、update、delete和drop,基於操作性質可以分為以下幾種:

//	 定乙個資料庫物件

sqlite3 *_database;

nsstring *path = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) firstobject];
sqlite3_open(databasepath.utf8string, &_database);
sqlite3_stmt *stmt;

sqlite3_prepare_v2(_database, sql, -1, &stmt, null);

sqlite3_stmt *stmt;

if (sqlite3_prepare_v2(_database, insertsql.utf8string, -1, &stmt, null) == sqlite_ok)

sqlite3_step(stmt);
sqlite3_finalize(stmt);
sqlite3_close(_database);
繫結過程中的引數
int sqlite3_bind_***x(sqlite3_stmt*,int,...);
第二個int型別的引數:表示引數在sql中的序號(從1開始)

第三個引數:要繫結引數的值

對於blob和text數值的額外引數:

第四個引數是字串的長度,不包括結束『\0』

第五個引數:型別是 void (*)(void *):表示sqlite處理結束後用於清理引數字串的函式,沒有進行繫結的未知引數將被認為是 null

執行過程

int sqlite3_step(sqlite3_stmt*);
返回值:

結束的時候清理 statement 物件

int sqlite3_finalize(sqlite3_stmt*);
在關閉資料庫之前清理過程中占有的資源

重置過程的執行

int sqlite3_reset(sqlite3_stmt *stmt);
過程將返回沒有執行之前的狀態,繫結的引數不會變化

得到結果的總共行數

int sqlite3_column_count(sqlite3_stmt *stmt);
如果過程沒有返回值,如update將返回0

得到當前行中包含的資料個數

int sqlite3_data_count(sqlite3_stmt *);
如果 sqlite3_step(); 返回sqlite_row,可以得到列數,否則為零

得到資料行中某個列的資料

sqlite3_column_***(sqlite3_stmt *, int icol);
在 sqlite3_step(); 返回sqlite_row 後,使用它得到第 icol 列的資料

得到資料行中某個列的資料的型別

int sqlite3_column_type(sqlite3_stmt*,int icol);
返回值為:sqlite_integer,sqlite_float,sqlite_text,sqlite_blob,sqlite_null

SQLite3建立資料庫的方法

介面和mysql一樣,都是cmd介面,但不是在sqlite.exe中建立資料庫 首先還是說一下cmd下sqlite的使用網上已經很多了 不做過多的贅述。大致說一下相應的命令就行了 作為學習sqlite的乙個記錄 2 解壓後使用cmd命令進入sqlite3.exe檔案所在的路徑執行命令就可以操作做相應...

SQLite3建立資料庫的方法

上次剛接觸sqllite,不知道怎麼建立資料庫,現在做下總結 介面和mysql一樣,都是cmd介面,但不是在sqlite.exe中建立資料庫 首先還是說一下cmd下sqlite的使用網上已經很多了 不做過多的贅述。大致說一下相應的命令就行了 作為學習sqlite的乙個記錄 2 解壓後使用cmd命令進...

Sqlite3 資料庫使用

iphone本身是支援 sqlite3 資料庫的,在專案中匯入libsqlite3.dylib。並建立資料庫,在終端,建立資料庫的方式 mkdir sql 建立sql資料夾 cd sql 進入sql目錄下 sqlite3 student.sql 建立名為 student.sql的資料庫 建立表 插入...