iOS虽然也有SQL,不过用得少(至少我目前是这样)。大数据直接丢给后台,小的用Plist足矣。

再退一步,有FMDB,原生的也用得少了。

下面是之前学SQL时候的笔记。

 

1、创建

1-1)、打开: 数据库指针、保存地址

sqlite3_open([path UTF8String], &new_sql)

1-2)、创建: 数据库指针、创建指令、错误指令

NSString *command = @"CREATE TABLE IF NOT EXISTS UserTable (username TEXT primary key,password TEXT,age TEXT)";

sqlite3_exec(new_sql, [command UTF8String], NULL, NULL, &new_error)

1-3)、关闭: 数据库指针

sqlite3_close(new_sql);

 

2、插入

2-1)、打开: 数据库指针、保存地址

同上

2-2)、插入:

//插入:指令
NSString *op = @"INSERT INTO UserTable(username,password,age) VALUES (?,?,?)";

//准备: 数据库指针、插入指令、句柄
sqlite3_prepare(new_sql, [op UTF8String], -1, &new_stmt, NULL);

//绑定: 句柄、位置、数据
sqlite3_bind_text(new_stmt, 1, [name UTF8String], -1, NULL);

//下一步: 句柄
sqlite3_step(new_stmt);

//结束: 句柄
sqlite3_finalize(new_stmt);

2-3)、关闭: 数据库指针

同上

 

3、删除

3-1)、打开: 数据库指针、保存地址

同上

3-2)、删除:

//删除指令:
NSString *op = @"DELETE FROM userTable WHERE userName = ?";

//准备: 数据库指针、删除指令、句柄
sqlite3_prepare(new_sql, [op UTF8String], -1, &new_stmt, NULL);

//绑定: 句柄、位置、数据
sqlite3_bind_text(new_stmt, 1, [name UTF8String], -1, NULL);

//下一步: 句柄
sqlite3_step(new_stmt);

//结束: 句柄
sqlite3_finalize(new_stmt);

3-3)、关闭: 数据库指针

同上

 

4、选择

4-1)、打开: 数据库指针、保存地址

同上

4-2)、选择:

//选择指令:
1)NSString *op = @"SELECT username,password,age From UserTable where username = ?";
2)NSString *op = @"SELECT username,password,age From UserTable";

//准备: 数据库指针、选择指令、句柄
sqlite3_prepare(new_sql, [op UTF8String], -1, &new_stmt, NULL);

//绑定: 句柄、位置、数据
sqlite3_bind_text(new_stmt, 1, [selet_name UTF8String], -1, NULL);

//下一步: 句柄
sqlite3_step(new_stmt);

//遍历:
while (result == SQLITE_ROW)
{
    char *c_name = (char *)sqlite3_column_text(new_stmt, 0);
    char *c_password = (char *)sqlite3_column_text(new_stmt, 1);
    char *c_age = (char *)sqlite3_column_text(new_stmt, 2);

    NSString *s_name = [NSString stringWithCString:c_name encoding:NSUTF8StringEncoding];
    NSString *s_password = [NSString stringWithCString:c_password encoding:NSUTF8StringEncoding];
    NSString *s_age = [NSString stringWithCString:c_age encoding:NSUTF8StringEncoding];

    NSLog(@"%@,%@,%@",s_name,s_password,s_age);
    result = sqlite3_step(new_stmt);
    //NSLog(@"%d",new_stmt);
}

//结束: 句柄
sqlite3_finalize(new_stmt);

4-3)、关闭: 数据库指针

同上

 

附录:

5、插入变体:更新

@"UPDATE UserTable SET password = ? where username = ?"

 

6、选择变体:排序

@"SELECT * FROM userTable ORDER BY age ASC(DESC)"
内容来源于网络如有侵权请私信删除