IOS-sqlite3数据库: create table数据库表及对数据库表的增删改查(create/insert/delete)

1.步骤是:

先加入sqlite开发库libsqlite3.dylib,

新建或打开数据库,

创建数据表,

插入数据,

查询数据并打印

2、sqlite 的方法

sqlite3          *db, 数据库句柄,跟文件句柄FILE很类似

sqlite3_stmt *stmt, 这个相当于ODBC的Command对象,用于保存编译好的SQL语句

sqlite3_open(),    打开数据库,没有数据库时创建。
sqlite3_exec(),    执行非查询的sql语句
Sqlite3_step(),    在调用sqlite3_prepare后,使用这个函数在记录集中移动。
Sqlite3_close(),   关闭数据库文件
还有一系列的函数,用于从记录集字段中获取数据,如
sqlite3_column_text(),      取text类型的数据。
sqlite3_column_blob(),取blob类型的数据
sqlite3_column_int(),       取int类型的数据

3.数据库表的操作:create及update/insert/delete/select

 

 //创建数据库表(Create Table)

+ (BOOL)createTable {

  //判断数据库是否打开

            if ([shareDataBase open]) {

                    //如果表 inner_ac_info不存在,就创建,包含字段列名_id(数据类型为integer,主键,自动递增),ac_name(数据类型为varchar),iu_no(数据类型为varchar),ou_no(数据类型为varchar), gw_ip(数据类型为varchar).

                    NSString *sql = @"CREATE TABLE IF NOT EXISTS inner_ac_info (_id  integer primary key autoincrement, ac_name varchar, iu_no  varchar,  ou_no  varchar, gw_ip  varchar)";

                    [shareDataBase executeUpdate:sql];

              

                    NSString *sql1 = @"CREATE TABLE IF NOT EXISTS ac_mode_info (_id  integer primary key autoincrement, ac_mode_name varchar, on_off  integer,  speed integer, work_mode  integer, temp  integer)";

                    [shareDataBase executeUpdate:sql1];

 

                

                    NSString *sql2 = @"CREATE TABLE IF NOT EXISTS ac_mode_inner_ac (_id  integer primary key autoincrement, ac_mode_id long, ac_id  long)";

            

                    [shareDataBase executeUpdate:sql2];       

//                [shareDataBase close];

     }

 

SQLite 的 AUTOINCREMENT 是一个关键字,用于表中的字段值自动递增.

关键字 AUTOINCREMENT 只能用于整型(INTEGER)字段。

/**

 

 

 

 //查询数据库表

+ (NSArray *)getAcList{

        NSMutableArray *acarray = [[NSMutableArray alloc] init];

        [self init];

        if ([shareDataBase open]) {

            //查询数据库表下面一句

            FMResultSet *s = [shareDataBase executeQuery:[NSString stringWithFormat:@"SELECT * FROM inner_ac_info"]];

          //相当于 NSString *string = [NSString stringWithFormat:@"SELECT * FROM inner_ac_info"

         //+        FMResultSet *s = [shareDataBase executeQuery:string];

           while ([s next]) {

                Airconditioner *ac = [[Airconditioner alloc] init];

                ac.acId = [NSNumber numberWithInt:[s intForColumn:@"_id"]];

                ac.rmname = [s stringForColumn:@"ac_name"];

                ac.aciuNo = [s stringForColumn:@"iu_no"];

                ac.acouNo = [s stringForColumn:@"ou_no"];

                ac.gwIp   = [s stringForColumn:@"gw_ip"];

               [acarray addObject:ac];

            }

           //关闭数据库

            [shareDataBase close];

        }

        return acarray;

}

 

//更新数据库表的修改(update)

+ (void)updateAc: (Airconditioner*) ac{

    

    [self init];

    NSLog(@"AcId =========%@",ac.acId);

    if ([shareDataBase open]) {

       //数据库表执行更新操作:修改id对应的nkname

        [shareDataBase executeUpdate:

         @"UPDATE  inner_ac_info  set ac_name = ?  where _id = ?",ac.nkname, ac.acId];

        [shareDataBase close];

    }

}

 

//删除数据库表

//删除部分

+ (void)deleteAc:(NSString*)iuNo with:(NSString*) ouNo{

    [self init];

    if ([shareDataBase open]) {

        [shareDataBase executeUpdate:

         @"delete from inner_ac_info where iu_no = ? and ou_no = ?", iuNo, ouNo];

       [shareDataBase close];

    }

}

//删除全部

+ (void)deleteAllAc{

    [self init];

    if ([shareDataBase open]) {

        [shareDataBase executeUpdate:

         @"delete from  inner_ac_info"];

        [shareDataBase close];

    }

}

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/yuyu-2012/p/4813466.html