三、打开数据库(可以建立管理工具类单例)
  1、通过指定SQLite数据库文件路径来创建FMDatabase对象
  (1)FMDatabase *db = [FMDatabase databaseWithPath:path];
  if (![db open]) {
  NSLog(@"数据库打开失败!");
  }
  2、文件路径path有三种情况
  (1)具体文件路径
  如果不存在会自动创建
  (2)空字符串@""
  会在临时目录创建一个空的数据库
  当FMDatabase连接关闭时,数据库文件也被删除
  (3)nil
  会创建一个内存中临时数据库,当FMDatabase连接关闭时,数据库会被销毁
  四、更新操作(FMDatabase)
  1、在FMDB中,除查询以外的所有操作,都称为“更新”
  create、drop、insert、update、delete等
  2、使用 executeStatements (可以一次执行多条SQL语句)
  - (BOOL)executeStatements:(NSString *)sql
  - (BOOL)executeStatements:(NSString *)sql withResultBlock:
  3、使用executeUpdate(一次执行一条SQL语句,可带参数(SQL的预编译))
  - (BOOL)executeUpdate:(NSString*)
  - (BOOL)executeUpdateWithFormat:(NSString*)format
  - (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments
  示例
  [db executeUpdate:@"UPDATE t_student SET age = ? WHERE name = ?;", @20, @"Jack"]
  五、执行查询(FMDatabase)
  1、查询方法
  - (FMResultSet *)executeQuery:(NSString*)sql
  - (FMResultSet *)executeQueryWithFormat:(NSString*)format
  - (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments
  示例
  // 查询数据
  FMResultSet  * rs = [db executeQuery:@"SELECT * FROM t_student"];
  六、关于FMDatabaseQueue
  1、提供一些同步队列操作数据库的方法
  (1)- (void)inDatabase:(void (^)(FMDatabase *db))block
  (2)- (void)inTransaction:(void (^)(FMDatabase *db, BOOL *rollback))block  回调中创建了FMDatabase类型的数据库,可以直接拿来用
  2、提供事务操作方式:
  (1)快速实现插入操作
  (2)实现备份回滚
  rollBack.memory = true
  七、关于FMResultSet结果集
  1、一些方法围绕“Column”的方法,可以根据列进行不同的操作,返回不同的搜索结果
objectForColumn:
intForColumn:
longForColumn:
longLongIntForColumn:
boolForColumn:
doubleForColumn:
stringForColumn:
dateForColumn:
dataForColumn:
dataNoCopyForColumn:
UTF8StringForColumnIndex:
  2、next,判断结果及是否有下一个元素
  (1)遍历结果集
  while ([rs next]) {
  NSString *name = [rs stringForColumn:@"name"];
  int age = [rs intForColumn:@"age"];
  double score = [rs doubleForColumn:@"score"];
  }