• ios sqlite3的简单使用


    第一:创建表格

    //创建表格
    -(void)creatTab{
        NSString*creatSQL=@"CREATE TABLE IF NOT EXISTS PERSIONFO(ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,AGE TEXT, SEX TEXT,WEIGHT INTEGER,ADDRESS TEXT)";
        char *ERROR;
        if (sqlite3_exec(database,[creatSQL UTF8String], NULL, NULL, &ERROR)!=SQLITE_OK) {
            sqlite3_close(database);
            NSAssert(0, @"creat table faild!");
            NSLog(@"创建表格失败");
        }
    }

    解释:CREATE TABLE IF NOT EXISTS PERSIONFO    如果没有名称为:PERSIONFO的表,建个表PERSIONFO

         ID INTEGER   列名:ID 类型:long int  PRIMARY KEY 名为主键   AUTOINCREMENT 自动加一,并产生sqlite_sequence

      sqlite3_exec(database,[creatSQL UTF8String], NULL, NULL, &ERROR) 参数1.sqlite3类 参数2.sql语句 参数3.回调函数 参数4.回调函数的第一个参数 参数5.错误

    数据类型:

    •   NULL - 空值
    •   INTERGER - 有符号整数类型
    •   REAL - 浮点数类型
    •   TEXT - 字符串(其编码取决于DB的编码)
    •     BLOB - 二进制表示

    第二:打开数据库

    -(void)creatSqlite{
        if(sqlite3_open([[self dataFilePath] UTF8String],&database)!=SQLITE_OK){
            sqlite3_close(database);
            NSAssert(0, @"open database faid");
            NSLog(@"数据库创建失败");
        };
    }

    解释:sqlite3_open([[self dataFilePath] UTF8String],&database) 打开数据库:参数1.地址 urf8类型   参数2.数据库类的地址

    第三:插入数据

    -(void)insertData{
        NSString*sql1=[NSString stringWithFormat:@"INSERT INTO '%@' ('%@','%@' ,'%@') VALUES ('%@','%@','%@')",@"PERSIONFO",@"NAME",@"AGE",@"SEX",@"张三",@"23",@"西城区"];
        char *err;
        if (sqlite3_exec(database, [sql1 UTF8String], NULL, NULL, &err)!=SQLITE_OK) {
            sqlite3_close(database);
            NSLog(@"数据库操作失败!");
            NSLog(@"%s",err);
        }
    }

    解释:INSERT INTO tablename  向tablename表内的(列名称)VALUES 插入(相应的数据)

    第四:查询

    -(void)searchSqlite{
        NSString*sqlQuery=@"SELECT * FROM PERSONINFO";
        sqlite3_stmt *statement;
        if (sqlite3_prepare_v2(database, [sqlQuery UTF8String], -1, &statement, NULL)==SQLITE_OK) {
            while (sqlite3_step(statement)==SQLITE_OK) {
    //            char *name=(char*)sqlite3_column_text(statement, 1);
                NSString*string=[NSString stringWithUTF8String:sqlite3_column_text(statement, 1)];
                NSLog(@"%@",string);;
            }
        }
    }

    解释:SELECT * FROM PERSONINFO 从PERSONINFO中取出所有数据

       sqlite3_prepare_v2(database, [sqlQuery UTF8String], -1, &statement, NULL)  参数1.数据库类 参数2.sql语句  参数3.字节的最大长度-1无限制 参数4.输出语句句柄 参数5.输出未使用部分指针    语句返回每行符合过滤的数据

       sqlite3_step(statement)  每步获取一行数据

    最后:关闭数据库

    -(void)closeSqlite{
        sqlite3_close(database);
    }
  • 相关阅读:
    Web SSH 客户端Ajaxterm安装
    Ubuntu Manpage: ajaxterm
    Web工程师的工具箱 | 酷壳
    EF架构~二级域名中共享Session
    VS~通过IIS网站启用"域名"调试
    EF架构~豁出去了,为了IOC,为了扩展,改变以前的IRepository接口
    MVVM架构~knockoutjs系列之文本框数符长度动态统计功能
    JS~jwPlayer为js预留的回调方法大总结
    晒网站:应用诺贝尔奖得主罗斯匹配算法的交友网站,具有更符合用户大网撒鱼心理的新颖用户使用模式
    ZOJ 2334(Monkey King-左偏树第一题)
  • 原文地址:https://www.cnblogs.com/chaochaobuhuifei55/p/5435029.html
Copyright © 2020-2023  润新知