[iOS]FMDB入门学习

最近在做数据库的项目,iOS的 Sqlite3用起来太复杂了,为了减少开发时间,使用FMDB这个第三方库来实现数据库的相关操作。

FMDB 下载地址:https://github.com/ccgus/fmdb

推荐数据库查看工具 SQLiteManager (可直观的查看数据库表结构)下载地址: http://www.onlinedown.net/soft/175053.htm

SQL语句学习:http://www.cnblogs.com/wengzilin/archive/2012/03/27/2419851.html

1.打开/关闭 数据库

#import "FMDatabase.h" // 包含头文件  
    // 数据库文件路径  
    NSString *dbFilePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"temp.db"];  
      
    // 打开数据库  
    FMDatabase *db = [FMDatabase databaseWithPath:dbFilePath] ;  
    if (![db open]) {  
        NSLog(@"不能打开数据库");  
    }  
      
    // 关闭数据库  
if (![db close]) {  
    NSLog(@"不能关闭数据库");  
}  
  
// 执行SQL语句,如果你已经对SQL语句很熟悉了,那么就不需要看下面的内容了  
[self.db executeUpdate:<#SQL语句#>];


2. 创建表

iOS Sqlite3 FMDB 的 SQL语法创建表时候的一些关键字(注意书写的顺序,如果顺序不对可能会造成创建表的失败)

Primary Key: 主键,创建表的时候 在字段后面 + PRIMARY KEY

Auto Increment: 自动增加,创建表的时候 在字段后面 + AUTOINCREMENT

Not Null: 不允许为空,创建表的时候 在字段后面 + NOT NULL

Unique: 唯一,创建表的时候 在字段后面 + UNIQUE

Check: 约束,创建表的时候 在字段后面 + CHECK约束条件

Default: 默认值,创建表的时候 在字段后面 + DEFAULT值

Collate: 创建表的时候 在字段后面 + COLLATE

Foreign Key: 外键,创建表的时候 在后面 + ,CONSTRAINT

示例:

 //建用户表 UserTable
    [self.db executeUpdate:@"CREATE TABLE UserTable (\
     user_id text PRIMARY KEY NOT NULL UNIQUE,\
     user_name text\
     )"];  
    
    // 创建行为表 ActionTable  
     [self.db executeUpdate:@"CREATE TABLE ActionTable (\
      action_id integer PRIMARY KEY AUTOINCREMENT UNIQUE DEFAULT 1,\
      type integer NOT NULL,\
      description text NOT NULL,\
      user_id text NOT NULL,\
      CONSTRAINT user_id FOREIGN KEY(user_id) REFERENCES UserTable(user_id) ON DELETE CASCADE ON UPDATE CASCADE\
      )"];


3.插入数据

[self.db executeUpdate:@"INSERT INTO UserTable (user_id, user_name) VALUES (?, ?)",  @"123", @"LiuLiu"];  
    
    [self.db executeUpdate:@"INSERT INTO ActionTable (type, description, user_id) VALUES (?, ?, ?)", [NSNumber numberWithInt:1], @"123", @"我谁也不爱", @"123"];


4.删除数据

[self.db executeUpdate:@"DELETE FROM UserTable WHERE user_id = ?", @"123"];


5.更新数据

[self.db executeUpdate:@"UPDATE UserTable SET type = ? where user_id = ?", [NSNumber numberWithInt:0], @"123"];


6.查询数据

FMResultSet *rs = [self.db executeQuery:@"SELECT * FROM UserTable"];  
    while ([rs next]) {  
        NSLog(@"user_id = %@", [rs stringForColumn:@"user_id"]);  
        NSLog(@"type = %d", [rs intForColumn:@"type"]);  
    } 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值