SQL简介与语法 IOS中FMDB缓存框架用法

SQL简介

什么是SQL?
  • SQL指结构化查询语言
  • SQL使我们有能力访问数据库
  • SQL是一种ANSI的标准计算机语言,
SQL能做什么?
  • SQL面向数据库执行查询
  • SQL可从数据库取出数据
  • SQL可在数据库中插入新的记录
  • SQL可更新数据库中数据
  • SQL可从数据库中删除数据
  • SQL可在数据库中创建数据表

SQL语法

创建表语法:

CREATE TABLE IF NOT EXISTS "表名"

(

"字段1" 类型1,

"字段2" 类型2,

"字段3" 类型3

PRIMARY KEY ("字段1",'"字段2") 
);

增加 或 修改数据语法:

INSERT OR REPLACE INTO 表名 (字段1,字段2)VALUES (?,?);

删除数据语法:

DELETE FROM 表名 WHERE 条件1 OR 条件2 AND 条件3

查询数据语法

查询整张表

ORDER 默认是升序  ORDER BY 字段 DESC指降序

SELECT 字段1,字段2  FROM 表名 WHERE 条件  ORDER BY 字段 LIMIT 条数


FMDB

FMDB是一款简洁、易用的封装库。因此,在这里推荐使用第三方框架FMDB,它是对libsqlite3框架的封装,用起来的步骤与SQLite使用类似,并且它对于多线程的并发操作进行了处理,所以是县城安全的。

FMDB PK Sqlite 

优点:

对多线程的并发操作进行处理,所以是线程安全的;

以oc的方式封装了sqlite的c语言api,使用起来更加的方便;

FMDB是轻量级的框架,使用灵活。

缺点:

因为它是oc的语言封装的,只能在ios开发的时候使用,所以在实现跨平台操作的时候存在局限性。

FMDB框架中重要的框架类

FMDatabase 

FMDatabase对象就代表一个单独的SQLite数据库,用来执行sql语句

FMResultSet 

使用FMDatabase执行查询后的结果集

FMDatabaseQueue 用于在多线程中执行多个查询或跟心,它是线程安全

数据库创建

创建FMDatabase对象时参数为SQLite数据库文件路径,该路径可以是以下三种方式之一

文件路径。该文件路径无需要真实存在,如果不存在会自动创建

空字符串(@“”),表示会在临时目录创建一个空的数据库,当FMDatabase连接关闭时,文件也会被删除

NULL.将创建一个内在数据库,同样的,当FMDatabase连接关闭,数据将会被销毁

FMDatabaseQueue

在多个线程中同时使用一个FMDatabase实例是不明智的。现在你可以为每个线程创建一个FMDatabase对象,不要让多个线程共享同一个实例,他无法在多个线程中同时使用。否则程序会时不时崩溃活着报告异常。所以,不要初始化FMDatabase对象,然后在多个线程中使用。这时候,我们就需要使用FMDatabaseQueue来创建队列执行事务。

FMDB中创建数据库语法为

 FMDAtabaseQueue *queue = [[FMDatabaseQueue allocinitWithPath:path];

//创建表,查询用这个方法

    [self.queue inDatabase:^(FMDatabase * _Nonnull db) {

        if ([db executeStatements:sql]) {

            NSLog(@"创表成功");

        } else {

            NSLog(@"创表失败");

        }

       

    }];

插入活着删除数据要用事务函数,是线程安全的。

    [_queue inTransaction:^(FMDatabase * _Nonnull db, BOOL * _Nonnull rollback) {

        BOOL result = [db executeUpdate:sql withArgumentsInArray:@[@(statusId),@(userId)]];

        if (result) {

            NSLog(@"插入成功");

        }

        

    }];








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值