ios SQLite3使用

SQLite3使用:

insert data

sqlite3_open

sqlite3_stmt

sqlite3_prepare_v2

sqlite3_bind_text

sqlite3_step

sqlite3_finalize

sqlite3_close

query data

sqlite3_open

sqlite3_stmt初始化緩存區(qū)

sqlite3_prepare_v2執(zhí)行查詢語句

sqlite3_step while循環(huán)逐步執(zhí)行sqlite_step(stmt)如果stmt中還有未讀取的數(shù)據(jù)返回SQLITE_ROW如讀取完畢返回SQLITE_DON

sqlite3_column_datatype

sqlite3_finalize釋放緩沖區(qū)

sqlite3_close關(guān)閉數(shù)據(jù)庫

打開sqlite3_open參數(shù)1數(shù)據(jù)庫文件路徑參數(shù)2數(shù)據(jù)庫指針的地址如果數(shù)據(jù)庫不存在該方法會創(chuàng)建一個數(shù)據(jù)庫并打開

如果打開失敗關(guān)閉數(shù)據(jù)庫

斷言NSAssert(條件,….)如果條件為假crash崩潰并輸出字符串

斷言表達式不成立程序crash打印輸出

創(chuàng)建表

sql語句execute

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

sqlite3_exec 參數(shù)1sqlite3 * 數(shù)據(jù)庫; ?參數(shù)2char *sql sql語句轉(zhuǎn)化的C字符串; 參數(shù)3*callbackC語言的回調(diào)方法; 參數(shù)4void *回調(diào)方法的第一個參數(shù). 參數(shù)5**errmsg錯誤信息雙指針

存數(shù)據(jù)

打開數(shù)據(jù)庫sqlite3_open

創(chuàng)建sql語句

初始化句柄sqlite3_stmt *stmt = NULL

準備存數(shù)據(jù)sqlite3_prepare_v2把SQL語句編譯成字節(jié)碼留給后面的執(zhí)行函數(shù)(不執(zhí)行)

sqlite3_prepare_v2(sqlite3 *db, const char *zSql, int nByte, sqlite3_stmt **ppStmt, const char **pzTail)

sqlite3_prepare_v2(db, [checkIsHaveSql UTF8String], -1, &stmt, nil)

db:數(shù)據(jù)庫句柄

zSql:語句

nByte:如果nByte小于0,則函數(shù)取出zSql從開始到第一0終止符的內(nèi)容l如果nByte不是負的,那么它就是這個函數(shù)能從zSql中讀取的字節(jié)數(shù)的最大值送淆。

pZtail:上面提到zSql在遇見終止符或者是達到設(shè)定的nByte之后結(jié)束,假如zSql還有剩余的內(nèi)容,那y這些剩余的內(nèi)容被存放到pZtail中,不包括終止符

ppStmt:能夠使用sqlite3_step()執(zhí)行的編譯好的準備語句的句柄,如果錯誤發(fā)生,它被置為NULL,如假如輸入的文本不包括sql語句嘉抒。調(diào)用過程必須負責在編譯好的sql語句完成使用后使用sqlite3_finalize()刪除stmt中的內(nèi)容俗他。

向stmt中綁定內(nèi)容sqlite3_bind_datatype 1、句柄2怒允、字段索引從1開始3黎泣、值4、值長度5桑嘶、函數(shù)指針不需要傳null

執(zhí)行stmt即編譯好的sql語句獲得結(jié)果的一行sqlite3_step返回SQLITE_DONE

釋放緩沖區(qū)sqlite3_finalize

關(guān)閉數(shù)據(jù)庫sqlite3_close

讀數(shù)據(jù)

打開數(shù)據(jù)庫sqlite3_open

創(chuàng)建sql語句

初始化緩存區(qū)sqlite3_stmt *stmt = NULL

準備執(zhí)行查詢語句sqlite3_prepare_v2

while循環(huán)逐步執(zhí)行sqlite_step(stmt)如果stmt中還有未讀取的數(shù)據(jù)返回SQLITE_ROW如讀取完畢返回SQLITE_DONE

取數(shù)據(jù)sqlite3_column_datatype索引從0開始

釋放緩沖區(qū)sqlite_finalize

關(guān)閉數(shù)據(jù)庫sqlite_close

SQLite語句四中數(shù)據(jù)類型:

Int 整型 ? ?text文本字符串real 浮點型bool 存放較大的二進制數(shù)據(jù)

1.創(chuàng)建表

CREAT TABLE 表名(字段1,字段2躬充,字段3)

exp:CREAT TABLE Teacher (name text, age int, sex text);

2.插入一條數(shù)據(jù)

INSERT INTO 表名(字段1逃顶,字段2讨便,字段3)VALUES (值1,值2口蝠,值3)

值要和字段一一對應(yīng) 且不能少 為文本的字段時 加引號(單雙皆可)浮點型不用

3.查詢數(shù)據(jù)

SELECT 字段 FROM 表名

SELECT 字段器钟,字段津坑,字段 FROM 表名

SELECT * FROM 表名

WHERE語句用于有條件地從表中選取數(shù)據(jù)可將WHERE子句添加到SELECT語句

語法

在SELECT查詢語句后+WHERE字段名運算符值

SELECT*FROMStudentsWHEREname =? '張三';

數(shù)據(jù)庫提供內(nèi)置函數(shù):MAX(最大值), MIN(最小值), AVG(平均值)SUM(總值)

SELECT MAX(字段名) FROM表名

SELECT*FROMStudentsWHEREageBETWEEN10AND100

運算符有=妙蔗,<>(不等于!=),>疆瑰,<眉反,>=,<=穆役,BETWEEN(在某個范圍內(nèi)前閉后閉),LIKE(搜索某種模式%可以代表任意一串字符_代表一個任意字符)

abcd

_b%

查詢有d的字符串%d%

SELECT*FROMAAAWHEREcolumn1LIKE'%d%'

查詢第二位有b的字符串_b%

SELECT*FROMAAAWHEREcolumn1LIKE'_b%'

引號:SQL使用單引號(也支持雙引號)來環(huán)繞文本值寸五。如果是數(shù)值,則不要使用引號

4.修改數(shù)據(jù)

UPDATE表名稱SET列名稱=新值WHERE列名稱=某值(where后是一個條件)

UPDATE表名稱SET列名稱=新值耿币,列名稱=新值WHERE列名稱=某值

5.刪除數(shù)據(jù)

DELETE用于刪除表中的行

語法:

DELETE FROM表名稱WHERE列名稱=值

DELETEFROMStudentsWHEREname = '小芳'

刪除所有行即在不刪除表的情況下刪除所有的行梳杏,表的結(jié)構(gòu)、索引淹接、字段都是完整的

DELETE FROM表名

DELETEFROMTeacher

6.約束

SQL約束用于限制加入表的數(shù)據(jù)的類型十性。可以在創(chuàng)建表時規(guī)定約束塑悼,或者表創(chuàng)建過后也可以劲适,主要有以下幾種約束

NOT NULL約束強制列不接受空值空值無法插入新紀錄或更新紀錄

UNIQUE約束唯一標識數(shù)據(jù)庫表中的某個字段

PRIMARY KEY主鍵每個表中都應(yīng)有且只能有一個主鍵主鍵列不能為NULL值

FOREIGN KEY外鍵關(guān)鍵表

DEFAULT給字段添加默認值

AUTOINCREMENT自動增長

7.查詢不重復的數(shù)據(jù)

SELECT DISTINCT列名稱FROM表名稱

SELECTDISTINCTnameFROMStudents

SELECTDISTINCT*FROMStudents

8.AND和OR

如果兩個條件都成立AND運算符返回一條數(shù)據(jù)

SELECT*FROMStudentsWHEREname='張三'ANDweight = '50'

只要一個條件成立OR運算符就返回一條數(shù)據(jù)

SELECT*FROMStudentsWHEREname='張三'ORweight = ’50'

9.OREDR BY

根據(jù)指定列對結(jié)果集進行排序默認按照升序?qū)τ涗涍M行排序降序使用關(guān)鍵字DESC升序ASC

的 ORDER BY子句是用來遞增或遞減的順序,根據(jù)一個或多個列中的數(shù)據(jù)進行排序厢蒜。

SELECT字段名FROM表名稱ORDER BY字段名條件(DESC或ASC)

SELECT字段名霞势,字段名FROM表名稱ORDER BY字段名條件,字段名條件(DESC或ASC)

SELECT*FROMStudentsORDERBYnameDESC, ageDESC

select ?*from?students order by name desc,age desc

select age,name??fromstudents?order by age desc,name desc

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末斑鸦,一起剝皮案震驚了整個濱河市愕贡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌巷屿,老刑警劉巖颂鸿,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異攒庵,居然都是意外死亡嘴纺,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門浓冒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栽渴,“玉大人,你說我怎么就攤上這事稳懒∠胁粒” “怎么了慢味?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長墅冷。 經(jīng)常有香客問我纯路,道長,這世上最難降的妖魔是什么寞忿? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任驰唬,我火速辦了婚禮,結(jié)果婚禮上腔彰,老公的妹妹穿的比我還像新娘叫编。我一直安慰自己,他們只是感情好霹抛,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布搓逾。 她就那樣靜靜地躺著,像睡著了一般杯拐。 火紅的嫁衣襯著肌膚如雪霞篡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天端逼,我揣著相機與錄音朗兵,去河邊找鬼。 笑死裳食,一個胖子當著我的面吹牛矛市,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播诲祸,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼浊吏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了救氯?” 一聲冷哼從身側(cè)響起找田,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎着憨,沒想到半個月后墩衙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡甲抖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年漆改,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片准谚。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡挫剑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柱衔,到底是詐尸還是另有隱情樊破,我是刑警寧澤愉棱,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站哲戚,受9級特大地震影響奔滑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜顺少,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一朋其、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧祈纯,春花似錦令宿、人聲如沸叼耙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筛婉。三九已至簇爆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間爽撒,已是汗流浹背入蛆。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留硕勿,地道東北人哨毁。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像源武,于是被迫代替她去往敵國和親扼褪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354

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