FMDB的使用, Sqlite常用語句

2021-06-23 03:19:54 字數 3184 閱讀 6859

專案很多要用到資料庫,資料庫語句有時候容易忘記,所以把常用的一些簡單語句寫下來,以後忘記了可以直接來部落格複製,哈哈

專案中首先加入libsqlite3.dylib這個函式庫。

一.例項化fmdatabase

//讀取資料庫

-(fmdatabase* )loaddb:(nsstring *)dbname

return db;

}

也可以用工具在外部設計好資料庫,拖進專案中,專案沒找到資料庫時,直接把專案中的資料庫拷貝到document中

-(fmdatabase* )loaddb:(nsstring *)dbname

//建立資料庫例項 db 這裡說明下:如果路徑中不存在"test.db"的檔案,sqlite會自動建立"test.db"

fmdatabase *db= [fmdatabase databasewithpath:localdbpath];

if (![db open])

return db;

}

二.建立表

/*

注意:在建立table 時設定的字段預設是允許為空的,即allow null

*///1、建立乙個名為table1的表,有三個字段分別為string型別的name、age、***

[db executeupdate:@"create table if not exists table1 (name text,age text,*** text)"];

//2、建立乙個名為table2的表,id欄位自增(即:序號)

//not null表示不用需為空值

[db executeupdate:@"create table if not exists table2 (id integer primary key autoincrement not null,name text,age text not null,*** text)"];

三.插入

bool bool2 = [db executeupdate:@"insert into table1 (name,age,***)values(?,?,?)",@"name1",@"10",@"男"];

nslog(@"insert %@!",bool2?@"success":@"faile");

四.更新

bool bool3 = [db executeupdate:@"update table1 set age=?",@"12"];

nslog(@"update %@!",bool3?@"success":@"faile");

bool bool4 = [db executeupdate:@"update table1 set age=? where name=? and ***=?",@"12",@"name1",@"男"];

nslog(@"update %@!",bool4?@"success":@"faile");

五.刪除

//刪除資料

bool bool5 = [db executeupdate:@"delete from table1 where name = ?",@"name1"];

nslog(@"delete %@!",bool5?@"success":@"faile");

六.查詢

取得特定的資料,則需使用fmresultset物件接收傳回的內容:

//用[rs next]可以輪詢query回來的資料,每一次的next可以得到乙個row裡對應的數值,並用[rs stringforcolumn:]或[rs intforcolumn:]等方法把值轉成object-c的型態。取用完資料後則用[rs close]把結果關閉。

fmresultset *rs = [db executequery:@"select name, age, from table1"];

while ([rs next])

[rs close]

#define query_key(rs,key) ([rs stringforcolumn:key]?[rs stringforcolumn:key]:@"")

fmresultset *rs=[db executequery:@"select * from table2 where ***=? order by age desc",@"男"];

/*(注: asc 表示公升序 , desc表示降序 , 未明確寫明排序方式時預設是公升序)*/

if (rs != nil &&[rs columncount]>0)

}[db close];

[rs close];

1、查所有演員名字開頭叫茱蒂的電影('%' 符號便是 sql 的萬用字元):

select * from film where starring like 'jodie%';

2、查所有演員名字以茱蒂開頭、年份晚於2023年、年份晚的優先列出、最多十筆,只列出電影名稱和年份:

select title, year from film where starring like 'jodie%' and year >= 1985 order by year desc limit 10;

3、有時候我們只想知道資料庫一共有多少筆資料:

select count(*) from film;

4、有時候我們只想知道2023年以後的電影有幾部:

select count(*) from film where year >= 1985;

七.增加列,即:增加字段

bool bool1 = [db executeupdate:@"alter table table2 add number2 text"];

nslog(@"add %@!",bool1?@"success":@"faile");

sqlite 操作 使用FMDB

alter table table name add column column name column type 例如在student表中新增一列名為name,型別為varchar alter table student add column name varchar alter table st...

SQLite與FMDB使用中區別

基本使用區別 1.資料庫的操作物件 1 sqlite通過sqlite3 sqlite3 db 2 fmdb方式 fmdatabase db 2.開啟資料庫方式 1 sqlite方式 void opendb else 2 fmdb方式 void opendb else 3.建立 1 sqlite方式 ...

FMDB對sqlite的操作

首先要先導入第三方類庫fmdatabase 獲得存放資料庫檔案的沙盒位址 nsstring databasefilepath 建立資料庫的操作 void creatdatabase 建立表 void creattable 判斷資料庫是否已經開啟,如果沒有開啟,提示失敗 if dbopen 為資料庫設...