前言
? ? ? ? 關(guān)于數(shù)據(jù)的存儲(chǔ)用過很多方式,F(xiàn)MDB是最開始使用的一種年堆,也是使用最多的吞杭,閑來無事,把自己之前用到的東西变丧,寫下來做個(gè)紀(jì)念芽狗。
使用方法
? ? ? ? 具體到我這里的用法是寫了一個(gè)基于fmdb的數(shù)據(jù)庫(kù)管理類DBManager,主要就是封裝了建表痒蓬,刪表童擎,以及增刪改查等功能,其他的比如計(jì)數(shù)攻晒,排序等一般用不到顾复。然后又有一個(gè)基于DBManager具體使用的基類BaseDB,把具體會(huì)用到的接口用它來包裝鲁捏,最后就是不同的功能需要使用數(shù)據(jù)庫(kù)來做存儲(chǔ)的就繼承BaseDB芯砸,比如UserDB,然后具體實(shí)現(xiàn)其功能就ok了给梅。?
具體使用
1.主要sql語句:
建表:
create table if not exists DBManager (id integer primary key autoincrement,UserGender text,UserName text);
刪表:
drop table DBManager假丧;
插入:
insert into DBManager (UserGender,UserName) values (?,?)
刪除:
- delete from DBManager ?刪除 全部數(shù)據(jù) ??
- delete from DBManager where id = 4? 刪除 符合條件數(shù)據(jù)
修改:
- update DBManager set UserName='Me',UserAge='28'? ? ? ? ? ? ? 更新 全部數(shù)據(jù) 字段
- update DBManager set UserName='Me',UserAge='28' where id = 1? 更新 符合條件數(shù)據(jù) 字段
查詢:
- select count ( * ) from DBManager? 全部數(shù)據(jù)
- select count (name) from DBManager
2.BaseDB方法
func createTable(keys:Array) -> Bool {}
func dropTable() -> Bool {}
func insertData(data:Dictionary) -> Bool {}
func selectData(keys:Array= [],condition:Array? = nil) -> Array? {}
func updateData(keyValues:Dictionary,condition:Array= []) -> Bool {}
func deleteData(name:String = DBManager.name,condition:Array= []) -> Bool {}
3.UserDB方法
func saveUserInfo(data: Dictionary) -> Bool {}
func modify(name:String) -> Bool {}
func modify(userImage:String) -> Bool {}
func modify(gender:String) -> Bool {}
更多sql語句
-統(tǒng)計(jì)查詢
select count(*) from DBManager;
--分頁功能, limit從第幾條記錄開始(起始條數(shù)是0),返回的記錄行數(shù)
select id, name, height, age from DBManager limit 0, 2;
-排序功能,默認(rèn)是升序ASC 动羽、降序DESC包帚,排序是按照指定的條件,由左至右依次排列
select id, name, height, age from DBManager order by name desc, age asc;
--模糊查詢运吓, %可以匹配任何內(nèi)容渴邦, %內(nèi)容%表示只要出現(xiàn)內(nèi)容,都會(huì)被搜索出來羽德,邏輯判斷and or not
select id, name, height, age from DBManager where (name like '%a%' age > 20) or name = 'li';
其他
SQL中的常用關(guān)鍵字
select几莽、insert、update宅静、delete章蚣、from、create、where纤垂、desc矾策、order、by峭沦、group贾虽、table、alter吼鱼、view蓬豁、index等等數(shù)據(jù)庫(kù)中不可以使用關(guān)鍵字來命名表、字段
字段類型菇肃,SQLite將數(shù)據(jù)劃分為以下幾種存儲(chǔ)類型:
integer : 整型值
real : 浮點(diǎn)值
text : 文本字符串
blob : 二進(jìn)制數(shù)據(jù)(比如文件)
條件語句的常見格式
段落與之前的段落中間預(yù)留一行地粪,并且加4個(gè)空格就可以進(jìn)入黑文本狀態(tài)了
where 字段 = 某個(gè)值 ; ? // 不能用兩個(gè) =
where 字段 is 某個(gè)值 ; ? // is 相當(dāng)于 =
where 字段 != 某個(gè)值 ;
where 字段 is not 某個(gè)值 ; ? // is not 相當(dāng)于 !=
where 字段 > 某個(gè)值 ;
where 字段1 = 某個(gè)值 and 字段2 > 某個(gè)值 ;? // and相當(dāng)于C語言中的 &&
where 字段1 = 某個(gè)值 or 字段2 = 某個(gè)值 ;? //? or 相當(dāng)于C語言中的 ||
過多的就不贅述了,感興趣的可以查看demo
參考: