SQLite3的使用
来源:互联网 发布:美国失业金数据公布 编辑:程序博客网 时间:2024/06/05 07:37
// 拼接数据库地址
NSString *path =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
NSString *sqlFile = [path stringByAppendingPathComponent:@student.sqlite];
// 打开数据
int result = sqlite3_open(sqlFile.UTF8String, &_db);
打开数据库会返回一个int类型的返回值,通过该值可以判断创建数据库是否成功
// 判断是否打开成功
if (result == SQLITE_OK) {
NSLog(@打开成功);
// 创建表
/*
第一个参数: 需要执行SQL语句的数据库对象
第二个参数: 需要执行的SQL语句
第三个参数: 回调函数
第四个参数: 第三个参数的参数
第五个参数: 接收错误信息
*/
// 创建表的sql语句
NSString *sql = @CREATE TABLE IF NOT EXISTS t_student(id INTEGER PRIMARY KEY AUTOINCREMENT , name TEXT, age INTEGER, score REAL);;
result = sqlite3_exec(_db, sql.UTF8String, NULL, NULL, NULL);
if (result == SQLITE_OK) {
NSLog(@创建表成功);
}else
{
NSLog(@创建表失败);
}
}else
{
NSLog(@打开失败);
}
2.插入数据
NSString *sql = @INSERT INTO t_student(age, score, name) VALUES (‘28’, 100, ‘jonathan’);;
int result = sqlite3_exec(_db, sql.UTF8String, NULL, NULL, NULL);
if (result == SQLITE_OK) {
NSLog(@插入成功);
}
3.修改数据
int result = sqlite3_exec(_db, sql.UTF8String, NULL, NULL, NULL);
if (result == SQLITE_OK) {
NSLog(@修改成功);
}
4.删除数据
NSString *sql = @DELETE FROM t_student WHERE id = 1; ;
int result = sqlite3_exec(_db, sql.UTF8String, NULL, NULL, NULL);
if (result == SQLITE_OK) {
NSLog(@删除成功);
5.查找数据(查询数据 sqlite3操作中, 所有DML语句都是使用sqlite3_exec函数执行SQL语句即可,但是如果是需要查询数据库, 不能使用sqlite3_exec, 因为它并没有返回查询到得结果发给我们)
NSString sql = @SELECT FROM t_student;;
sqlite3_stmt *stemt = NULL;
/*
第一个参数:需要执行SQL语句的数据库
第二个参数:需要执行的SQL语句
第三个参数: 告诉系统SQL语句的长度, 如果传入一个小于0的数, 系统会自动计算
第四个参数:结果集, 里面存放所有查询到的数据(不严谨)
*/
sqlite3_prepare_v2(_db, sql.UTF8String, -1, &stemt, NULL);
// 判断有没有查询结果
while (sqlite3_step(stemt) == SQLITE_ROW) {
// 取出第一个字段的查询得结果
const unsigned char *name = sqlite3_column_text(stemt, 1);
// 取出第一个字段的查询得结果
int age = sqlite3_column_int(stemt, 2);
// 取出第一个字段的查询得结果
double score = sqlite3_column_double(stemt, 3);
NSLog(@%s %d %f, name, age, score);
}
NSString *path =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
NSString *sqlFile = [path stringByAppendingPathComponent:@student.sqlite];
// 打开数据
int result = sqlite3_open(sqlFile.UTF8String, &_db);
打开数据库会返回一个int类型的返回值,通过该值可以判断创建数据库是否成功
// 判断是否打开成功
if (result == SQLITE_OK) {
NSLog(@打开成功);
// 创建表
/*
第一个参数: 需要执行SQL语句的数据库对象
第二个参数: 需要执行的SQL语句
第三个参数: 回调函数
第四个参数: 第三个参数的参数
第五个参数: 接收错误信息
*/
// 创建表的sql语句
NSString *sql = @CREATE TABLE IF NOT EXISTS t_student(id INTEGER PRIMARY KEY AUTOINCREMENT , name TEXT, age INTEGER, score REAL);;
result = sqlite3_exec(_db, sql.UTF8String, NULL, NULL, NULL);
if (result == SQLITE_OK) {
NSLog(@创建表成功);
}else
{
NSLog(@创建表失败);
}
}else
{
NSLog(@打开失败);
}
2.插入数据
NSString *sql = @INSERT INTO t_student(age, score, name) VALUES (‘28’, 100, ‘jonathan’);;
int result = sqlite3_exec(_db, sql.UTF8String, NULL, NULL, NULL);
if (result == SQLITE_OK) {
NSLog(@插入成功);
}
3.修改数据
int result = sqlite3_exec(_db, sql.UTF8String, NULL, NULL, NULL);
if (result == SQLITE_OK) {
NSLog(@修改成功);
}
4.删除数据
NSString *sql = @DELETE FROM t_student WHERE id = 1; ;
int result = sqlite3_exec(_db, sql.UTF8String, NULL, NULL, NULL);
if (result == SQLITE_OK) {
NSLog(@删除成功);
5.查找数据(查询数据 sqlite3操作中, 所有DML语句都是使用sqlite3_exec函数执行SQL语句即可,但是如果是需要查询数据库, 不能使用sqlite3_exec, 因为它并没有返回查询到得结果发给我们)
NSString sql = @SELECT FROM t_student;;
sqlite3_stmt *stemt = NULL;
/*
第一个参数:需要执行SQL语句的数据库
第二个参数:需要执行的SQL语句
第三个参数: 告诉系统SQL语句的长度, 如果传入一个小于0的数, 系统会自动计算
第四个参数:结果集, 里面存放所有查询到的数据(不严谨)
*/
sqlite3_prepare_v2(_db, sql.UTF8String, -1, &stemt, NULL);
// 判断有没有查询结果
while (sqlite3_step(stemt) == SQLITE_ROW) {
// 取出第一个字段的查询得结果
const unsigned char *name = sqlite3_column_text(stemt, 1);
// 取出第一个字段的查询得结果
int age = sqlite3_column_int(stemt, 2);
// 取出第一个字段的查询得结果
double score = sqlite3_column_double(stemt, 3);
NSLog(@%s %d %f, name, age, score);
}
0 0
- sqlite3的基本使用
- SQLite3的使用
- sqlite3的简单使用
- sqlite3的使用教学
- sqlite3 的使用
- SQLite3的使用
- Android:SQLite3的使用
- ios SQLite3的使用
- SQLite3的使用
- IOS sqlite3的使用
- sqlite3方法的使用
- sqlite3数据库的使用
- SQLite3的使用
- sqlite3 FMDB的使用
- Sqlite3的使用小结
- sqlite3触发器的使用
- sqlite3 脚本的使用
- sqlite3的使用
- 软件文档的概念和细分
- 屏幕适配
- Codeforces Round #328 D Super M(树的直径+树形DP)
- python常见编译错误:IndentationError缩进错误
- 获得网络视频缩略图并且播放
- SQLite3的使用
- asp.net之简易聊天室
- Java线程池
- 用mysql的federated数据引擎和触发器实现跨服务器表数据同步
- ETS的配置
- iOS图片选择的优化与封装
- FMDB的使用
- 洛谷2622 关灯问题II
- (NO.00002)iOS游戏精灵战争雏形(七)