SQLite创建表并添加数据

- (void)viewDidLoad {
    [super viewDidLoad];
    //创建表
    [self creatTable];
    //插入数据
    [self insertTable];
}

// -----------------------创建一个表--------------------
- (void)creatTable
{
// 1.创建一个数据库对象
    sqlite3 *sqlite3 = nil;

// 2.数据库的路径
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/mySqlite.db"];

// 3.打开数据库 (通过指定路径打开数据库文件,如果没有就创建)
    int result = sqlite3_open([path UTF8String], &sqlite3);
    if (result != SQLITE_OK) {
        NSLog(@"数据库打开失败!");
        return;
    }

// 4.创建sql语句
    NSString *sql = @"CREATE TABLE Students (id integer PRIMARY KEY,name text)";

// 5.执行SQL语句
    char *error = NULL;
    result = sqlite3_exec(sqlite3, [sql UTF8String], NULL, NULL, &error);
    if (result != SQLITE_OK) {
        NSLog(@"执行sql语句失败!");
        // 6.关闭数据库
        sqlite3_close(sqlite3);
        return;
    }
// 6.关闭数据库
    sqlite3_close(sqlite3);
}

// -------------------------插入数据------------------------
- (void)insertTable
{
// 1.创建一个数据库对象
    sqlite3 *sqlite3 = nil;

// 2.数据库的路径
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/mySqlite.db"];

// 3.打开数据库 (通过指定路径打开数据库文件,如果没有就创建)
    int result = sqlite3_open([path UTF8String], &sqlite3);
    if (result != SQLITE_OK) {
        NSLog(@"数据库打开失败!");
        return;
    }

// 4.创建sql语句
    // insert into students(id,name) values('123456','李斯')
    NSString *sql = @"insert into students(id,name) values(?,?)";

// 5.编译sql语句
    // 创建一个数据句柄对象
    sqlite3_stmt *stmt = nil;
    result = sqlite3_prepare_v2(sqlite3, [sql UTF8String], -1, &stmt, nil);
    if (result != SQLITE_OK) {
        NSLog(@"编译失败");
        // 关闭数据库
        sqlite3_close(sqlite3);
        return;
    }

// 6.绑定数据到数据句柄里面
    sqlite3_bind_int(stmt, 1, 123457);
    sqlite3_bind_text(stmt, 2, "张三", -1, nil);

// 7.执行数据句柄的操作
    result = sqlite3_step(stmt);
    if (result == SQLITE_ERROR || result == SQLITE_MISUSE) {
        NSLog(@"插入失败");
        // 关闭数据句柄
        sqlite3_finalize(stmt);
        // 关闭数据库
        sqlite3_close(sqlite3);
        return ;
    }

// 8.执行成功
    NSLog(@"插入成功");
    // 关闭数据句柄
    sqlite3_finalize(stmt);
    // 关闭数据库
    sqlite3_close(sqlite3);

}

时间: 2024-10-17 05:08:56

SQLite创建表并添加数据的相关文章

MySQL基础(创建库,创建表,添加数据)

CREATE DATABASE 数据库名; CREATE TABLE student2(sno VARCHAR(20) NOT NULL PRIMARY KEY COMMENT"学号",sname VARCHAR(20) NOT NULL COMMENT"学生姓名",ssex VARCHAR(20) NOT NULL COMMENT"学生性别",sbirthday datetime COMMENT"学生出生年月",class

SQLite建表并添加数据

Android开发时,sqlite创建表成功,insert不报错,但没有数据插入的原因

在android开发过程中,经常要通过sqlite来存储一些数据,这种应用应该是再平常不过了,但是有时难免一时疏忽,就会出现sqlite创建表成功,insert不报错,但没有数据插入. 具体问题详见如下代码: Context ctx;        SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); // 开启事务        db.beginTransaction();        try{                // 数

使用MySQL Workbench建立数据库,建立新的表,向表中添加数据

初学数据库,记录一下所学的知识.我用的MySQL数据库,使用MySQL Workbench管理.下面简单介绍一下如何使用MySQL Workbench建立数据库,建立新的表,为表添加数据. 点击上图中的“加号”图标,新建一个连接, 如上图,先输入数据库的账号密码,帐号默认为root,填好密码后 点击“OK”,连接就建立好了,建立完成后,会出现一个长方形的框框,双击它,出现下图所示页面 点击图中的红圈里的按钮,新建一个Schema,即数据库(个人理解..),修改一下Name 的值,如  mydat

MySql存储过程动态创建表并插入数据

最近做的一个项目,数据库用的是MySql,对于MySql不是很熟练,只是会简单的应用,毕竟简单的sql语句还是相通的,但是随着项目的深入复杂的sql语句开始慢慢多起来,其中一个小难点就是要根据当天的日期动态创建表,并且向其中插入数据. 具体逻辑可以理解为,先去数据库查询有没有当天的记录表,如果没有则创建表,然后执行当天的日志写入. Mysql的可视化工具我们用的是navicat,相对来说还是比较好用,当然没有sqlserver 那么人性化(很多快捷键不支持,操作累赘).下面我就来说一说用navi

sqlite 删除表中重复数据(亲测可用)

例子:表名  Paper .通过字段PaperID查找重复数据. 1 --查询某表中重复的数据       select * from Paper group by PaperID having count(*)>1; 2--删除重复行数,只剩不重复的记录(rowid为sqlite自带字段)      delete from Paper where Paper.rowid not in (select MAX(Paper.rowid) from Paper group by PaperID);

MSSQL创建表时添加说明

示例: IF OBJECT_ID('MemberExt1') IS NOT NULL DROP TABLE MemberExt1 GO CREATE TABLE MemberExt1 ( MemberId INT NOT NULL, QRImage NVARCHAR(500) , Url NVARCHAR(500) ) EXEC sp_addextendedproperty N'MS_Description', N'记录Member的二维码和个人推荐URL', N'user', N'dbo',

Sqlite创建表一定要声明字段类型(ContentProvider查询的小问题)

用ContentProvider查询,有时候不太灵..就像下面的代码,数据库中存在该数据,但是查不出来.原因可能是该字段没有声明类型.. 如下: private final static String SQL_CREATE_TABLE_INSTALLED = "CREATE TABLE if not exists " + TABLE_INSTALLED + " ( " + "id not null, " + "name text not

创建表和添加表约束

一.标准的建表语法 CREATE TABLE 表名 (列名 数据类型 [默认 表达式],... ); 说明: 1.在创建新表时,指定的表名必须不存在,否则会出错 2.使用值: 当插入行时如果不给出值,dbms将自动采用默认值 dbms:数据库管理系统 null 0 0.0 3.在使用create语句创建基本表时,最初只是一个空的框架,用户可以使用insert命令把数据库插入表中 数据库表字段的数据类型 字符数据类型 CHAR:存储固定长度的字符串 VARCHAR2 :存储可变长度的字符串 数值数