iOS --SQL的增加、删除、查找、修改
iOS对于数据库的操作:增加、删除、查找、修改
首先需要创建一个数据库:本程序的数据库是在火狐浏览器里的插件里写的微量型数据库
火狐找查找SQLite Manager的步骤:
第一步:在工具栏找到附加组件,点击进入

第二步:搜索 SQP,找到并下载,安装完成之后需要重启浏览器


第三步:在工具只乐观找到SQLite Manager,点击打开

SQLite Manager界面如图所示

注:SQLite Manager是微量型的数据库编程软件,所以一次只能执行一句代码!!!
- 创建数据库
--数据库的建立
create table team
(
-- 创建名字为team的table
stu_id integer primary key autoincrement,
stu_name varchar(100),
stu_password varchar(100),
stu_login varchar(100)
)
--添加信息
insert into team(stu_name,stu_password,stu_login) values('xiaming','','xm')
insert into team(stu_name,stu_password,stu_login) values('zhangsan','',' zs')
--查询信息
select *from team
--删除信息
delete from team where stu_id=3
工程目录文件如下:

这里需要导入一个系统自带的文件libsqlite3.0.tbd
步骤如图:




- 实现工程
ViewController.h
#import <UIKit/UIKit.h>
#import <sqlite3.h>
@interface ViewController : UIViewController @property(strong,nonatomic)UIButton *showbtn;
@property(strong,nonatomic)UIButton *insertbtn;
@property(strong,nonatomic)UIButton *updatebtn;
@property(strong,nonatomic)UIButton *deletebtn; @end
ViewController.h
#import "ViewController.h"
#define PATH  [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"team.sqlite"]
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    // 获取沙盒 Documents文件路径
    NSLog(@"%@",[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]);
    [self button];
}
-(void)button
{
    self.showbtn=[UIButton buttonWithType:UIButtonTypeSystem];
    self.showbtn.frame=CGRectMake(, , , );
    [self.showbtn setTitle:@"数据库显示" forState:UIControlStateNormal];
    [self.showbtn addTarget:self action:@selector(showSql) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:self.showbtn];
    self.insertbtn=[UIButton buttonWithType:UIButtonTypeSystem];
    self.insertbtn.frame=CGRectMake(, , , );
    [self.insertbtn setTitle:@"数据库添加" forState:UIControlStateNormal];
    [self.insertbtn addTarget:self action:@selector(insertSql) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:self.insertbtn];
    self.updatebtn=[UIButton buttonWithType:UIButtonTypeSystem];
    self.updatebtn.frame=CGRectMake(, , , );
    [self.updatebtn setTitle:@"数据库修改" forState:UIControlStateNormal];
    [self.updatebtn addTarget:self action:@selector(updateSql) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:self.updatebtn];
    self.deletebtn=[UIButton buttonWithType:UIButtonTypeSystem];
    self.deletebtn.frame=CGRectMake(, , , );
    [self.deletebtn setTitle:@"数据库删除" forState:UIControlStateNormal];
    [self.deletebtn addTarget:self action:@selector(deleteSql) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:self.deletebtn];
}
#pragma mark - 显示数据表中的所有信息
-(void)showSql
{
    NSLog(@"显示数据库信息");
    // 数据库
    sqlite3 *db;
    // 根据指定的数据库文件存储路径打开数据库
    int result=sqlite3_open([PATH UTF8String], &db);
    // 创建执行命令对象
    sqlite3_stmt *stmt;
    // 打开数据库成功
    if (result==SQLITE_OK) {
        NSLog(@"连接成功");
       //  执行预处理命令
        int res=sqlite3_prepare_v2(db, "select *from team", -, &stmt, nil);
        if (res==SQLITE_OK) {
            // 循环遍历数据表的行信息
            while (sqlite3_step(stmt)==SQLITE_ROW) {
                // 获取数据表中整型列的信息
                int stu_id=sqlite3_column_int(stmt, );
                NSLog(@"stu_id is %d",stu_id);
                // 获取数据表中字符型的列的信息
                NSLog(@"%@",[NSString stringWithFormat:@"%s",sqlite3_column_text(stmt, )]);
                 NSLog(@"%@",[NSString stringWithFormat:@"%s",sqlite3_column_text(stmt, )] );
                NSLog(@"%@",[NSString stringWithFormat:@"%s",sqlite3_column_text(stmt, )] );
            }
        }
    }
}
#pragma mark -增加信息
-(void)insertSql
{
    sqlite3 *db;
    sqlite3_stmt *stmt;
    sqlite3_open([PATH UTF8String], &db);
    int rst=sqlite3_prepare_v2(db, "insert into team(stu_name,stu_password,stu_login) values(?,?,?)", -, &stmt, nil);
    sqlite3_bind_text(stmt, , "wangwu", -, nil);
    sqlite3_bind_text(stmt, , "", -, nil);
    sqlite3_bind_text(stmt, , "ww", -, nil);
    // 判断是否增加成功
    if (rst==SQLITE_OK) {
        if (SQLITE_DONE==sqlite3_step(stmt)) {
            NSLog(@"add ok");
        }else{
            NSLog(@"add fail");
        }
    }
}
#pragma mark - 修改数据库
-(void)updateSql
{
    sqlite3 *db;
    sqlite3_stmt *stmt;
    sqlite3_open([PATH UTF8String], &db);
    // 方法一
    /*
     int res = sqlite3_prepare_v2(db, "update  team set stu_name=(?),stu_password=(?),stu_login=(?) where stu_id=2" , -1, &stmt, nil);
     sqlite3_bind_text(stmt, 1, "xiaoming", -1, nil);
     sqlite3_bind_text(stmt, 2, "123456", -1, nil);
     sqlite3_bind_text(stmt, 3, "xm", -1, nil);
     */
    // 方法二
    int rst=sqlite3_prepare_v2(db, "update team setstu_name='zl',stu_password='zl123',stu_login='zhangsan' where stu_id=4", -, &stmt, nil);
    // 判断是否修改成功
    if (rst==SQLITE_OK) {
        if (SQLITE_DONE == sqlite3_step(stmt)) {
            NSLog(@" update ok");
        }else{
            NSLog(@"update fail");
        }
    }
}
-(void)deleteSql
{
    sqlite3 *db;
    sqlite3_stmt *stmt;
    sqlite3_open([PATH UTF8String], &db);
    int rst=sqlite3_prepare_v2(db, "delete from team where stu_id=9", -, &stmt, nil);
    // 判断是否删除成功
    if (rst==SQLITE_OK) {
        if (SQLITE_DONE==sqlite3_step(stmt)) {
                NSLog(@" delete ok");
            }else{
                NSLog(@"delete fail");
        }
    }
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
@end
iOS --SQL的增加、删除、查找、修改的更多相关文章
- Sql Server 增加字段、修改字段、修改类型、修改默认值(转)
		转:http://www.cnblogs.com/pangpanghuan/p/6432331.html Sql Server 增加字段.修改字段.修改类型.修改默认值 1.修改字段名: alter ... 
- 数据库-SQL语句:删除和修改语句-列类型-列约束
		使用MySQL客户端连接服务器的两种方式: (1)交互模式: ——查 mysql.exe -h127.0.0.1 -uroot -p mysql -uroot (2)脚本模式:——增删改 m ... 
- SQL语句增加列、修改列、删除列
		SQL语句增加列.修改列.删除列 1.增加列: 1.alter table tableName add columnName varchar(30) 2.ALTER TABLE dbo.doc_exa ... 
- iptables中增加/删除/查询/修改的基本操作
		虽然在Ubuntu使用了UFW来简化iptables的操作,但是UFW只针对防火墙方面,转发方面没有涉及,所以要弄懂其中的原理,还是必须回归到iptables中.CentOS也是如此.下面是针对ipt ... 
- 【备忘】SQL语句增加字段、修改字段、修改类型、修改默认值
		一.修改字段默认值 alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束 alter table 表名 add constraint 约束名 ... 
- SQL语句增加字段、修改字段、修改类型、修改默认值
		一.修改字段默认值 alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束 alter table 表名 add constraint 约 ... 
- Sql Server 增加字段、修改字段、修改类型、修改默认值
		1.修改字段名: alter table 表名 rename column A to B 2.修改字段类型: alter table 表名 alter column 字段名 type not null ... 
- SQL语句增加列、修改列类型、修改列、删除列
		1.增加列: alter table tableName add columnName varchar(30) 2.修改列类型: alter table tableName alter column ... 
- OPEN SQL:插入、删除、修改语法
		1. UPDATE 用于实现对数据据的更新操作,语法如下: UPDATE <dbtab> set f1...fn (where <condition>). UPDATE < ... 
随机推荐
- 我的“第一次”,就这样没了:DDD(领域驱动设计)理论结合实践
			写在前面 插一句:本人超爱落网-<平凡的世界>这一期,分享给大家. 阅读目录: 关于DDD 前期分析 框架搭建 代码实现 开源-发布 后记 第一次听你,清风吹送,田野短笛:第一次看你,半弯 ... 
- JS入门
			1,undefined,NaN,Null,infinity 1) undefined 是undefined 类型 var a; //声明变量后不赋值 typeof 类型判断方法 console.log ... 
- Convert.ToInt32()、int.Parse()和(int)三者的区别
			Convert.ToInt32将object类类型转换成int类型,如Convert.ToInt32(session["shuzi"]); (int)适合简单数据类型之间的转换: ... 
- string length() 方法注意点
			突然意识到string length() 是跟文件的字符编码相关的 测试了下, 果然如此: 对于常见字, 结果是一样的, System.out.println("T中国123".l ... 
- 数据库中树形列表(以easyui的tree为例)
			构造一棵easyui前台框架的一个树形列表为例后台框架是spring MVC+JPA. 先看一下数据库是怎么建的,怎么存放的数据 下面是实体类 /** * 部门类 用户所属部门(这里的部门是一个相对抽 ... 
- 解析大型.NET ERP系统 单据标准(新增,修改,删除,复制,打印)功能程序设计
			ERP系统的单据具备标准的功能,这里的单据可翻译为Bill,Document,Entry,具备相似的工具条操作界面.通过设计可复用的基类,子类只需要继承基类窗体即可完成单据功能的程序设计.先看标准的销 ... 
- awk命令简介
			awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ... 
- 多线程同步工具——CAS原子变量
			这是我参考的一篇文章<基于CAS的乐观锁实现>,讲述的是一种需要CPU支持的执行技术CAS(Compare and Swap). 首先理解什么是原子性操作,意思是不能再拆分的操作,例如改写 ... 
- YYModel 源码解读(二)之YYClassInfo.h (1)
			NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END 为了兼容Swift 中的 ? 和 ! oc 在6.3引入了两个新的类型注释:__nullable和__non ... 
- JavaScript学习总结(三)——this、原型、javascript面向对象
			一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ... 
