前言
关于数据的存储用过很多方式,FMDB是最开始使用的一种,也是使用最多的,闲来无事,把自己之前用到的东西,写下来做个纪念。
使用方法
具体到我这里的用法是写了一个基于fmdb的数据库管理类DBManager,主要就是封装了建表,删表,以及增删改查等功能,其他的比如计数,排序等一般用不到。然后又有一个基于DBManager具体使用的基类BaseDB,把具体会用到的接口用它来包装,最后就是不同的功能需要使用数据库来做存储的就继承BaseDB,比如UserDB,然后具体实现其功能就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 删除 全部数据
- delete from DBManager where id = 4 删除 符合条件数据
修改:
- update DBManager set UserName='Me',UserAge='28' 更新 全部数据 字段
- update DBManager set UserName='Me',UserAge='28' where id = 1 更新 符合条件数据 字段
查询:
- select count ( * ) from DBManager 全部数据
- 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语句
-统计查询
select count(*) from DBManager;
--分页功能, limit从第几条记录开始(起始条数是0),返回的记录行数
select id, name, height, age from DBManager limit 0, 2;
-排序功能,默认是升序ASC 、降序DESC,排序是按照指定的条件,由左至右依次排列
select id, name, height, age from DBManager order by name desc, age asc;
--模糊查询, %可以匹配任何内容, %内容%表示只要出现内容,都会被搜索出来,逻辑判断and or not
select id, name, height, age from DBManager where (name like '%a%' age > 20) or name = 'li';
其他
SQL中的常用关键字
select、insert、update、delete、from、create、where、desc、order、by、group、table、alter、view、index等等数据库中不可以使用关键字来命名表、字段
字段类型,SQLite将数据划分为以下几种存储类型:
integer : 整型值
real : 浮点值
text : 文本字符串
blob : 二进制数据(比如文件)
条件语句的常见格式
段落与之前的段落中间预留一行,并且加4个空格就可以进入黑文本状态了
where 字段 = 某个值 ; // 不能用两个 =
where 字段 is 某个值 ; // is 相当于 =
where 字段 != 某个值 ;
where 字段 is not 某个值 ; // is not 相当于 !=
where 字段 > 某个值 ;
where 字段1 = 某个值 and 字段2 > 某个值 ; // and相当于C语言中的 &&
where 字段1 = 某个值 or 字段2 = 某个值 ; // or 相当于C语言中的 ||
过多的就不赘述了,感兴趣的可以查看demo
参考:
网友评论