美文网首页
iOS数据库基本使用

iOS数据库基本使用

作者: 丶天空蓝丶 | 来源:发表于2021-08-24 14:29 被阅读0次

基本介绍

iOS数据库使用的是SQLite,一款轻型的嵌入式关系数据库。
安卓和iOS开发使用的都是SQLite数据库。
它的特点:
它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
它的处理速度比MySQL、PostgreSQL这两款著名的数据库都还快。
它是C语言框架的,跨平台性强。

主流三方库

iOS SDK很早就支持了SQLite,在使用时,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可。但是,原生的SQLite API在使用上相当不友好,在使用时,非常不便,因此,一些三方库就应运而生,下面我就例举几个我经常使用的三方库。
首先是FMDB,如果想学习FMDB的使用请 参考github链接
以及在FMDB上再次封装的BGFMDB 参考github链接 和LKDBHelper 参考github链接
以上三种数据库各有千秋,基本上不是太复杂的数据存储都能满足。

数据库使用语句

前端用到最多的还是查询语句,增、删、改一般都是很基本的,如果使用上面的三方库,则更简单,sql语句都不用使用。当然一些简单的查询用上面三方库也不需要sql语句。下面就整理下自己在项目中用到的查询语句

  • 查询班里叫张三的学生
    select * from table where name = '张三'

  • 查询班里语文成绩最高的学生
    select max(chinese) chineseN, * from table
    如果查询最低将max换成min即可

  • 如果语文成绩最高的人不止一个,要查询成绩最高的那一群人
    select * from table where chinese = (select max(chinese) from table)

  • 相邻查询,查询工号跟你最接近的人(你的工号99)
    select * from table where job in (select max(job) from table where job < 99 union select min(job) from table where job > 99)

  • 分组查询,查询每个分数段有多少人
    select count(*) num, * from table group by scores

  • 排序,根据总成绩排序
    select * from table order by scores
    默认正序(asc),如果倒序后面加上desc

  • 分组排序查询,查询每个分数段有多少人并根据总分排序
    select count(*) num, * from table group by scores order by scores

  • 分组最高查询,查询每个分数段有多少人,并找出每个分数段语文最高成绩
    select count(*) num, max(chinese) chinese, * from table group by scores

  • 连表查询
    select tableA .* , tableB.* from tableA inner join tableB on tableA.id = tableB.id

  • 左连接表查询(左边这个表数据全部显示)
    select tableA .* , tableB.* from tableA left outer join tableB on tableA.id = tableB.id
    SQLite3不支持右连接和全连接

  • 派生查询
    将条件拆开查询,比喻查询名称叫张三的男生,可以先查询出所有男生,形成一张临时表,然后再在里面查询名称叫张三的
    select * from (select * from table where sex = '男') where name = '张三'
    先排序再分组(查询最新标题一样版本最新的数据)
    如果使用select * from table order by version group by title 这个语句则会报错,现在就可以使用派生查询
    select * from (select * from table order by version) group by title

写这篇文章主要是加深自己的记忆,如果能给大家提供帮助那就更好了,我也会定期更新自己遇见过的数据语句

相关文章

网友评论

      本文标题:iOS数据库基本使用

      本文链接:https://www.haomeiwen.com/subject/mkngbltx.html