美文网首页
数据存储之SQLite

数据存储之SQLite

作者: 贼海鸥 | 来源:发表于2017-06-09 10:40 被阅读0次

创建一个table表,名称是Person,里面有三个参数:id,name,age.其中,id是主键(唯一,且不能为空),

create table Person(id integer primary key, name text,age integer)

插入一条语句

insert into Person(name , age) values ("张三" , 18)

查询语句

select * from Person where id = 1

查询一个表的所有

select * from Person

更新表

update Person set name ="李四" where id = 1

删除某一条数据

delete from Person where id = 2

在项目中使用
首先要导入库

#import <sqlite3.h>

还要用到一个标签

{
    sqlite3 *db;
}
  • 1.在沙盒中创建表
    • 1.获取沙盒路径
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
  • 2.创建数据库
NSString *sqlitePath = [documentPath stringByAppendingString:@"database.sqlite"];
  • 3.打开数据库
int result = sqlite3_open(sqlitePath.UTF8String, &db);
  • 4.判断是否打开了
if (result == SQLITE_OK) {
        NSLog(@"打开成功");
    } else {
        NSLog(@"打开失败");
    }
  • 2.创建表
// sql语句
    NSString *sqlString = @"create table Person (id integer, name text, age integer)";
    // 执行语句
    char *error = nil;
    sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);
    
    // 判断是否出现错误
    if (error == nil) {
        NSLog(@"创建表成功");
    } else {
        NSLog(@"创建表失败");
    }
  • 3.对数据库进行操作
    • 1.插入数据
    NSString *sqlString = @"insert into Person (id, name, age) values (1 '张三' , 18)";
    char *error = nil;
    sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);
    // 判断是否出现错误
    if (error == nil) {
        NSLog(@"插入数据成功");
    } else {
        NSLog(@"插入数据失败");
    }
  • 2.更新数据
NSString *sqlString = @"update Person set 'name' = '李四' where id = 1";
    char *error = nil;
    sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);
    // 判断是否出现错误
    if (error == nil) {
        NSLog(@"更新数据成功");
    } else {
        NSLog(@"更新数据失败");
    }
  • 3.删除数据
NSString *sqlString = @"delete from Person where id = 1";
    char *error = nil;
    sqlite3_exec(db, sqlString.UTF8String, nil, nil, &error);
    // 判断是否出现错误
    if (error == nil) {
        NSLog(@"删除数据成功");
    } else {
        NSLog(@"删除数据失败");
    }
  • 4.查询数据
NSString *sqlString = @"select * from Person";
    // 准备sql语句
    // 数据库管理指针
    sqlite3_stmt *stmt = nil;
    sqlite3_prepare(db, sqlString.UTF8String, -1, &stmt, nil);
    // 单步执行语句
    while (sqlite3_step(stmt) == SQLITE_ROW) {
        int ID = sqlite3_column_int(stmt, 0);
        const unsigned char *name = sqlite3_column_text(stmt, 1);
        NSString *nameString = [NSString stringWithUTF8String:(const char *)name];
        int age = sqlite3_column_int(stmt, 2);
        NSLog(@"id:%d, name:%@, age:%d" ,ID, nameString, age);
    }
    // 释放
    sqlite3_finalize(stmt);
  • 4.操作完成之后,关闭数据库
// 关闭数据库
    int result = sqlite3_close(db);
    // 判断数据库是否关闭成功
    if (result == SQLITE_OK) {
        NSLog(@"关闭成功");
    } else {
        NSLog(@"关闭失败");
    }

SQLite很简单,就这么多内容

相关文章

网友评论

      本文标题:数据存储之SQLite

      本文链接:https://www.haomeiwen.com/subject/okuxqxtx.html