iOS数据库汇总-----更新不间断
来源:互联网 发布:网络角色扮演游戏排行 编辑:程序博客网 时间:2024/05/17 05:57
手机通用数据库类型: sqlite3
用sql语句操作数据,不区分大小写
Sqlite3:
1.建表:
create table if not exists student(stu_No varchar(200), stu_Name varchar(300),su_Sex varchar(100),stu_Age integer)
如果不存在学生信息表则创建 表student
creat table+表名(字段名称 字段类型,字段名称 字段类型,)
2.添加数据:
insert into student(stu_No , stu_Name,stu_Sex,stu_age,stu_Chengji)
values(‘1000001’,’李雷’,‘F’,18,60)
【注】添加的数据类型如果是字符串类型则要加单引号
3.删除:
delete from student where stu_No = ’1000001’
删除某一条数据时需要添加where 条件判断
如果不加where条件判断 则 删除表中的全部数据,表仍在,可以继续添加数据操作。
delete from student
4.修改:
update student set stu_Sex = ‘M’where stu_No = ’1000001’
修改一条数据需要添加where判断,进行定位数据对象
5.查询:
select * from student
查询表中的全部数据
select from student where stu_No = ‘1000001’
按条件查询一行数据
select stu_Name from student where stu_No = ‘1000001’
按条件查询某个字段值
代码如下:导库:
1.创建:
-(void)creatDB{ //沙盒路径 app 所在的位置 都是相对路径 //沙盒目录下 3个 文件夹 Documents Library tmp //Documents 一般存放数据库或者plist文件,一般用来存放用户信息, //library/caches 存放一些缓存文件,临时性文件 //tmp 存放临时性文件 app、iphone重启 tmp中文件销毁 //1. 确定数据库文件的路径 // 在沙盒目录下 Documents 下 名称为student.db NSString *dbPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject] stringByAppendingPathComponent:@"student.db"]; // NSString *dbStr = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/student.db"]; //2.声明数据库对象 sqlite3 *stuSql = nil; //3.打开数据库 //parameter1:数据库路径 //parameter2:数据库对象 if (sqlite3_open([dbPath UTF8String], &stuSql) == SQLITE_OK) { //如果打开数据库成功,则继续 数据库操作 NSString *str = @"create table if not exists student (id integer primary key autoincrement,stu_No varchar(200),stu_Name varchar(200),stu_Sex varchar(200),stu_age integer)"; //sqlite3_exec 执行数据库操作 char *errMsg = nil; int result = sqlite3_exec(stuSql, [str UTF8String], NULL, NULL, &errMsg); if (result == SQLITE_OK) { NSLog(@"建表成功"); } //关闭数据库 sqlite3_close(stuSql); }else{ NSLog(@"数据库打开失败 %s",sqlite3_errmsg(stuSql)); sqlite3_close(stuSql); }}
2.增:
-(void)addNewData:(UIButton*)btn{ NSString *dbPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"student.db"]; sqlite3 *stusql = nil; //打开数据库成功 if (sqlite3_open([dbPath UTF8String], &stusql) == SQLITE_OK) { NSString *insertStr = @"insert into student(stu_No,stu_Name,stu_Sex,stu_age) values('151601','小明','女',46)"; if (sqlite3_exec(stusql, [insertStr UTF8String], NULL, NULL, NULL) == SQLITE_OK) { NSLog(@"插入一条数据成功"); }else{ NSLog(@"%s",sqlite3_errmsg(stusql)); } } sqlite3_close(stusql);}
3.删:
-(void)delData:(UIButton*)btn{ NSString *dbPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject] stringByAppendingPathComponent:@"student.db"]; sqlite3 *stusql = nil; if (sqlite3_open([dbPath UTF8String], &stusql) == SQLITE_OK) { NSString *delStr = @"delete from student where stu_No= '100001'"; if (sqlite3_exec(stusql, [delStr UTF8String], NULL, NULL, NULL) == SQLITE_OK) { }else{ NSLog(@"%s",sqlite3_errmsg(stusql)); } } sqlite3_close(stusql);}
4.改:
-(void)updateData:(UIButton*)btn{ //数据路径 NSString *dbPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject]stringByAppendingPathComponent:@"student.db"]; //声明数据库对象 sqlite3 *stuSql = nil; //打开数据库 if (sqlite3_open([dbPath UTF8String], &stuSql) == SQLITE_OK) { NSString *updateStr = @"update student set stu_Sex = 'unkown' where stu_No = '100001'"; if (sqlite3_exec(stuSql, [updateStr UTF8String], NULL, NULL, NULL) == SQLITE_OK) { NSLog(@"更新完成"); }else{ NSLog(@"%s",sqlite3_errmsg(stuSql)); } }else{ NSLog(@"%s",sqlite3_errmsg(stuSql)); } sqlite3_close(stuSql);}
5.查:
-(void)queryData:(UIButton*)btn{ NSString *dbPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"student.db"]; sqlite3 *stuSql = nil; if (sqlite3_open([dbPath UTF8String], &stuSql) == SQLITE_OK) { NSString *queryStr = @"select stu_Name from student where stu_Sex = 'unkown'";// NSString *queryStr = @"select * from student"; //先声明查询句柄 sqlite3_stmt *stmt = nil; //先做查询前的准备 sqlite3_prepare_v2(stuSql, [queryStr UTF8String], -1, &stmt, nil); //查询数据时,每行查询一次,放在while中 while (sqlite3_step(stmt) == SQLITE_ROW) { //sqlite3_column_text 查询当前属性值 //parameter1:查询句柄 //parameter2:当前取得字段在结果集中的列是第几列 char *number = (char*)sqlite3_column_text(stmt, 1); NSString *numberStr = [NSString stringWithUTF8String:number]; NSLog(@" number: %@",numberStr); char *nameChar = (char*)sqlite3_column_text(stmt,2); NSString *nameStr = [NSString stringWithUTF8String:nameChar]; NSLog(@"name: %@",nameStr); char *sexChar = (char*)sqlite3_column_text(stmt, 3); NSString *sexStr = [NSString stringWithUTF8String:sexChar]; NSLog(@"sex: %@",sexStr); } }else{ NSLog(@"%s",sqlite3_errmsg(stuSql)); } }
- iOS数据库汇总-----更新不间断
- IOS 开发代码片段(不间断更新)
- Maven 用例,不间断更新
- 前端开发中各浏览器兼容性问题汇总——不间断更新
- Lucene学习资料--不间断更新
- 常用函数(不间断更新)
- SQL函数--不间断更新中、、、、、
- iOS资源汇总(长期更新)
- iOS 常见问题汇总 持续更新
- Sqlite 数据库更新 iOS
- 内存编程学习(不间断更新)
- 计算几何基础模板(不间断更新)
- CSDN使用技巧(不间断更新)
- 【Android】各种小知识点,不间断更新
- 浅谈树链剖分(每日不间断更新中)
- [Unity]最近遇到的几个问题.(不间断更新)
- 关于IE8的坑 (不间断更新)
- Laravel 小注意点(不间断更新)
- view_ _ Android应用坐标系统全面详解
- 网络请求框架(一):AsyncHttpClient
- 利用ScriptEngineManager执行js的RSA加密
- 元素脱离普通文档流后特点及问题总结
- 水平排列元素的底部对齐
- iOS数据库汇总-----更新不间断
- 不持有焦点的跑马灯效果TextView
- # android 系统修改/dev/bus/usb/*和串口的访问权限
- Metro
- leetcode_c++:图:Clone Graph(133)
- [leetcode]153. Find Minimum in Rotated Sorted Array
- 线程间通信-方法join的使用
- 图片传输(APP端将图片传至服务器端存储)
- mysql安装与配置(转)