当前位置:Gxlcms > 数据库问题 > FMDB复习

FMDB复习

时间:2021-07-01 10:21:17 帮助过:22人阅读

*path; //数据库的存储路径 } @property (nonatomic,strong)FMDatabase *dataBase;

1. 创建数据库

//1.创建一个数据库文件存放的位置路径
    path=[NSHomeDirectory() stringByAppendingString:@"/Documents/users.db"];
//2.创建FMDatabase对象 并用数据库文件路径初始化 _dataBase=[FMDatabase databaseWithPath:path];
//3.打开数据库 if([_dataBase open]){ NSLog(@"数据库成功打开"); }else { NSLog(@"数据库打开失败"); }
//4.关闭数据库 [_dataBase close]; // 为什么要关闭数据库? // 注意:每一次对数据库操作(增删改查)的时候,重新打开数据库,然后关闭,以免数据库,一直保持打开状态,造成不必要的资源消耗

2. 创建表

    NSString *sql=@"CREATE TABLE if not exists users (id integer primary key autoincrement,name VARCHAR(20),age VARCHAR(10));";
    // sql语句为什么一般都用大写?
    // 在iOS开发里面,为了区别sql的关键字,与表名或者列名,以及变量名区分,sql 语句通常都是用大写来标示
    // 如果id设置为自动增长的话,那么把表中的数据删除后,重新插入新的数据,id的编号不是从0开始,而是接着之前的id进行编号。PRIMARY KEY AUTOINCREMENT, 也就是这句话。
    
    //1.打开数据库
    if ([_dataBase open]) {
        //2.执行sql语句
        [_dataBase executeUpdate:sql];
    }else{
        NSLog(@"数据库打开失败");
    }
    //3.关闭数据库
    [_dataBase close];

 

3. 插入数据

    NSString *her=@"张三";
    NSString *sql=@"INSERT INTO users (name = ?,age = ?);";
    
    // NSString *sql2=@"INSERT INTO users (name,age) VALUES (?,?);";
    // executeUpdateWithFormat : 不确定的参数用%@、%d等来占位
    //1.
    if([_dataBase open]){
        //2. 插入单条数据
        [_dataBase executeUpdate:sql];
        [_dataBase executeUpdateWithFormat:@"INSERT INTO users (name,age) VALUES (%@,%d);",her,24];
        
        //多次插入
       for(int i=0;i<1000;i++){
           [_dataBase executeUpdateWithFormat:@"INSERT INTO users (name,age) VALUES (%@,%d);",@"刘亦菲",24+i];
        }
    }else{
        NSLog(@"打开数据库失败");
    }

    //3.
    [_dataBase close];

4. 删除数据

    NSString *sql=@"DELETE FROM users WHERE name = ‘范冰冰‘;";
    //1.
    if([_dataBase open]){
        //2.
        [_dataBase executeUpdate:sql];
    }else {
        NSLog(@"数据库打开失败");
    }
    //3.
    [_dataBase close];

5. 修改数据

    NSString *sql=@"UPDATE users SET name = ? WHERE id > 1;";
    //1.
    if ([_dataBase open]) {
        //2.
        [_dataBase executeUpdate:sql,@"杨颖"];
        
    }else{
    
        NSLog(@"数据库打开失败");
        
    }
    //3.
    [_dataBase close];

如果是升级,可能要增加字段,注意删除字段是不支持的。增加字段可以这样:

NSString *sql=@"ALTER TABLE users ADD COLUMN sex bit"; //增加sex字段

6. 查询数据

NSString *sql=@"SELECT * FROM users";
//NSString *sql=@"SELECT * FROM users WHERE id > ?;";
//1.
    if ([_dataBase open]) {
        
        //2.
        // 查询语句查询到的是一个集合,
        FMResultSet *set=[_dataBase executeQuery:sql];
        
        // 遍历查询到的结果集合
        while ([set next]) {
  
            //NSInteger ID=[set intForColumn:@"id"];
            NSString *name=[set stringForColumn:@"name"];
            NSString *age=[set stringForColumn:@"age"];
            NSLog(@"name:%@ age:%@",name,age);
            
        }
    }else{
    
        NSLog(@"数据库打开失败");
    }
    //3.
    [_dataBase close];

分页查询:

NSString *sql=@"SELECT * FROM users ORDER BY age DESC LIMIT 0,5;";
//ORDER BY age DESC 先降序
//LIMIT 0,5  跳过0条记录,取5条记录

 

FMDB复习

标签:增删改   var   cut   集合   分页查询   col   mda   name   close   

人气教程排行