SQLite 數(shù)據(jù)庫(kù)

create table user(id integer? primary key autoincrement,name text,pass text)

insert into user(name,pass) values('mmmm','mmmmmm') ;

insert into user(name,pass) values('123','322')

update user set name="zad" ,pass="dfsdf" ,qb=qb+2 ?where id=2;

select * from表名 order ?by ?age desc

updata 表名 set 字段=值,字段=值 where [條件]

1.為項(xiàng)目增加lbsqlite3.dylib

target->BuildPhases->+->

libsqlite3.dylib代表最新版本的SQLite3

2.在需要使用SQLiteAPI的OC類中導(dǎo)入

#import

stmt-Statement

對(duì)API操作的函數(shù):

int sqlite3_exec(sqlite3*,const char* sql,int(*callback)(void*,int,char**,char**),viud*,char**errmsg):

用于執(zhí)行沒(méi)有返回值的sql語(yǔ)句赏表,第一個(gè)參數(shù)代表打開(kāi)數(shù)據(jù)庫(kù)連接,第二個(gè)參數(shù)代表SQL語(yǔ)句,第三個(gè)參數(shù)代表執(zhí)行完成的回調(diào)函數(shù)寄悯,第四個(gè)參數(shù)代表傳給回調(diào)函數(shù)的調(diào)用參數(shù)帐偎,第五個(gè)參數(shù)用于封裝執(zhí)行SQL語(yǔ)句出錯(cuò)后的錯(cuò)誤信息

sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*):返回sqlite3代表的數(shù)據(jù)庫(kù)最后一次插入的ID

int sqlite3_changes(sqlite3*):當(dāng)執(zhí)行某條DML語(yǔ)句之后蔗牡,該函數(shù)用于返回受該條DML語(yǔ)句影響的記錄條數(shù)

void sqlite3_interrupt(sqlite3*): 中斷一個(gè)長(zhǎng)時(shí)間執(zhí)行的查詢語(yǔ)句

int sqlite3_complete(const char*sql): SQL語(yǔ)句是否執(zhí)行完成 適用于UTF-8

int sqlite3_complete16(const char*sql):適用于使用UTF-16字符集

int sqlite3_errcode(sqlite3 *db):獲取該數(shù)據(jù)庫(kù)連接執(zhí)行sql語(yǔ)句的錯(cuò)誤代碼

int sqlite3_extended_errcode(sqlite3* db):獲取該數(shù)據(jù)庫(kù)連接執(zhí)行SQL語(yǔ)句額外的錯(cuò)誤代碼

const char*sqlite3_errmsg(sqlite3*):獲取該數(shù)據(jù)庫(kù)連接執(zhí)行SQL語(yǔ)句的錯(cuò)誤提示痘煤。該函數(shù)還有const void* sqlite3_errmsg16(sqlite3*)拨与,用于處理UTF-16

int sqlite3_prepare(sqlite3*db,const char*zSql, int nByte,sqlite3_stmt**ppStmt,const char**pzTail): 對(duì)SQL語(yǔ)句執(zhí)行欲編譯哩治,該函數(shù)的第一個(gè)參數(shù)代表打開(kāi)的數(shù)據(jù)庫(kù)連接秃踩,第二個(gè)參數(shù)代表SQL語(yǔ)句,第三個(gè)三叔代表SQL語(yǔ)句的最大長(zhǎng)度业筏,第四個(gè)參數(shù)是傳出參數(shù)憔杨,只想欲編譯SQL語(yǔ)句產(chǎn)生的sqlite3_stmt,第五個(gè)參數(shù)指向SQL語(yǔ)句中未使用的部分。

const char*sqlite3_sql(sqlite3_stmt*pStmt):用于提取sqlite3_stmt(預(yù)編譯SQL語(yǔ)句產(chǎn)生的結(jié)果)中包裝的SQL語(yǔ)句

int sqlite3_stmt_busy(sqlite3_stmt*)用于檢測(cè)sqlite3_stmt(預(yù)編譯SQL語(yǔ)句產(chǎn)生的結(jié)果)是否為只讀操作

int sqlite3_bind_busy(sqlite3_stmt*):用于檢測(cè)sqlite3_stmt(預(yù)欲編譯SQL語(yǔ)句產(chǎn)生的結(jié)果)是否否正在執(zhí)行過(guò)程中

int sqlite3_bind_xxx(): 用于為sqlite3_stmt(預(yù)編譯SQL語(yǔ)句產(chǎn)生的結(jié)果)中的占位符參數(shù)綁定參數(shù)值蒜胖,其中第一個(gè)參數(shù)的索引為1消别,后面的參數(shù)索引逐個(gè)加1,根據(jù)綁定的參數(shù)類型的不同台谢,該函數(shù)的函數(shù)名有變化寻狂,傳入的參數(shù)個(gè)數(shù)也有變化,但至少需要兩個(gè)參數(shù)朋沮,第一個(gè)代表的索引蛇券,第二個(gè)代表參數(shù)的值。

int sqlite3_column_count(sqlite3_stmt*pStmt):返回sqlite3_stmt(欲編譯SQL語(yǔ)句產(chǎn)生的結(jié)果)返回的查詢結(jié)果的列數(shù)量樊拓。

const char*sqlite3_column_name(sqlite3_stmt*,int N);返回sqlite3_stmt(預(yù)編譯SQL語(yǔ)句產(chǎn)生的結(jié)果)的查詢結(jié)果中指定列索引對(duì)應(yīng)的列名

const char*sqlite3_column_database_name(sqlite3_stmt*,int):返回sqlite3_stmt(預(yù)編譯SQL語(yǔ)句產(chǎn)生的結(jié)果)的查詢結(jié)果中指定列索引對(duì)應(yīng)的數(shù)據(jù)庫(kù)名怀读。

const char*sqlite3_column_table_name(sqlite3_stmt*,int) 返回sqlite3_stmt((預(yù)編譯SQL語(yǔ)句產(chǎn)生的結(jié)果)的查詢結(jié)果中指定列索引對(duì)應(yīng)的表名

const char*sqlite3_column_decltype(sqlite3_stmt*,int):f安徽sqlite3_stmt( c預(yù)編譯SQL語(yǔ)句產(chǎn)生的結(jié)果) 的茶 u 虛擬機(jī)誒過(guò)中國(guó)年制定列索引對(duì)應(yīng)的類型

int sqlite3_step(sqlite3_stmt*):用于執(zhí)行sqlite3_stmt(預(yù)編譯SQL語(yǔ)句產(chǎn)生的結(jié)果),SQLITE_DONE表明執(zhí)行成功,除非調(diào)用sqlite3_reset()函數(shù)重置sqlite3_stmt,否則不應(yīng)該再次調(diào)用sqlite3_stmt

int sqlite3_data_count(sqlite3_stmt*pStmt): 用于執(zhí)行sqlite3_stmt(預(yù)編譯SQL語(yǔ)句產(chǎn)生的結(jié)果)當(dāng)前提取的數(shù)據(jù)行所包含的列數(shù)量骑脱。該函數(shù)與sqlite3_column_count()的區(qū)別——sqlite3_column_count()返回的是整個(gè)結(jié)果集的列數(shù)量菜枷,而sqlite3_data_count()函數(shù)返回的是當(dāng)前提取的數(shù)據(jù)行的列數(shù)量,比如當(dāng) sqlite3_step()h桉樹(shù)返回 SQLITE_DONE時(shí)叁丧,sqlite3_data_count()函數(shù)返回的一定是0

sqlite3_column_xxx(sqlite3_stmt*,int iCol):返回當(dāng)前行啤誊,指定列的數(shù)據(jù)

int sqlite3_finalize(sqlite3_stmt*pStmt):銷(xiāo)毀sqlite3_stmt,并回收資源

int sqlite3_reset(sqlite3_stmt*pStmt):重設(shè)sqlite3_stmt, 從而允許再次對(duì)該sqlite3_stmt執(zhí)行sqlite3_step()函數(shù)

char* sqlite3_temp_directory:獲取數(shù)據(jù)庫(kù)的臨時(shí)文件的目錄

char*sqlite3_data_directory:獲取數(shù)據(jù)庫(kù)的數(shù)據(jù)文件的目錄

int sqlite3_get_autocommit(sqlite3*) 返回制定數(shù)據(jù)庫(kù)是否為自動(dòng)提交模式拥娄,如果為自動(dòng)提交模式蚊锹,返回0,否則返回非0的整數(shù)

const char*sqlite3_db_filename(sqlite3*db,const char*zDbName);返回制定數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)文件路徑稚瘾,該函數(shù)返回的總是數(shù)據(jù)文件的絕對(duì)路徑

int sqlite3_db_readonly(sqlite3*db,const char*zDnName):用于檢測(cè)指定數(shù)據(jù)庫(kù)是否為只讀數(shù)據(jù)庫(kù)

sqlite3_stmt*sqlite3_next_stmt(sqlite3*pDb,sqlite3_stmt*pStmt):用于獲取下一個(gè)sqlite3_stmt

3.5.2 創(chuàng)建數(shù)據(jù)庫(kù)和表

s你用sqlite3_open()函數(shù)即可打開(kāi)貨創(chuàng)建數(shù)據(jù)庫(kù)

sqlite3* database;

sqlite3_open([self dbPath] UIF8String],&database);

SQLite支持都是面向C語(yǔ)言而不是面向OC的

創(chuàng)建數(shù)據(jù)庫(kù)表格:

//定義執(zhí)行建表的SQL語(yǔ)句

const char* createSQL="create table if not exists word_inf\(_id integer prmary key autoincrement,\

word,\

detail)";

//執(zhí)行建表語(yǔ)句

int result=sqlite3_exec(database,createSQL,NULL,NULL,&errMsg);;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末牡昆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌丢烘,老刑警劉巖柱宦,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異播瞳,居然都是意外死亡掸刊,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)赢乓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)忧侧,“玉大人,你說(shuō)我怎么就攤上這事牌芋◎揪妫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵躺屁,是天一觀的道長(zhǎng)肯夏。 經(jīng)常有香客問(wèn)我,道長(zhǎng)楼咳,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任烛恤,我火速辦了婚禮母怜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缚柏。我一直安慰自己苹熏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布币喧。 她就那樣靜靜地躺著轨域,像睡著了一般。 火紅的嫁衣襯著肌膚如雪杀餐。 梳的紋絲不亂的頭發(fā)上干发,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音史翘,去河邊找鬼枉长。 笑死,一個(gè)胖子當(dāng)著我的面吹牛琼讽,可吹牛的內(nèi)容都是我干的必峰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼钻蹬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼吼蚁!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起问欠,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤肝匆,失蹤者是張志新(化名)和其女友劉穎粒蜈,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體术唬,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡薪伏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了粗仓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嫁怀。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖借浊,靈堂內(nèi)的尸體忽然破棺而出塘淑,到底是詐尸還是另有隱情,我是刑警寧澤蚂斤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布存捺,位于F島的核電站,受9級(jí)特大地震影響曙蒸,放射性物質(zhì)發(fā)生泄漏捌治。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一纽窟、第九天 我趴在偏房一處隱蔽的房頂上張望肖油。 院中可真熱鬧,春花似錦臂港、人聲如沸森枪。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)县袱。三九已至,卻和暖如春佑力,著一層夾襖步出監(jiān)牢的瞬間式散,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工打颤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留杂数,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓瘸洛,卻偏偏與公主長(zhǎng)得像揍移,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子反肋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容