第一:创建表格

//创建表格
-(void)creatTab{
NSString*creatSQL=@"CREATE TABLE IF NOT EXISTS PERSIONFO(ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,AGE TEXT, SEX TEXT,WEIGHT INTEGER,ADDRESS TEXT)";
char *ERROR;
if (sqlite3_exec(database,[creatSQL UTF8String], NULL, NULL, &ERROR)!=SQLITE_OK) {
sqlite3_close(database);
NSAssert(, @"creat table faild!");
NSLog(@"创建表格失败");
}
}

解释:CREATE TABLE IF NOT EXISTS PERSIONFO    如果没有名称为:PERSIONFO的表,建个表PERSIONFO

     ID INTEGER   列名:ID 类型:long int  PRIMARY KEY 名为主键   AUTOINCREMENT 自动加一,并产生sqlite_sequence

  sqlite3_exec(database,[creatSQL UTF8String], NULL, NULL, &ERROR) 参数1.sqlite3类 参数2.sql语句 参数3.回调函数 参数4.回调函数的第一个参数 参数5.错误

数据类型:

  •   NULL - 空值
  •   INTERGER - 有符号整数类型
  •   REAL - 浮点数类型
  •   TEXT - 字符串(其编码取决于DB的编码)
  •    BLOB - 二进制表示

第二:打开数据库

-(void)creatSqlite{
if(sqlite3_open([[self dataFilePath] UTF8String],&database)!=SQLITE_OK){
sqlite3_close(database);
NSAssert(, @"open database faid");
NSLog(@"数据库创建失败");
};
}

解释:sqlite3_open([[self dataFilePath] UTF8String],&database) 打开数据库:参数1.地址 urf8类型   参数2.数据库类的地址

第三:插入数据

-(void)insertData{
NSString*sql1=[NSString stringWithFormat:@"INSERT INTO '%@' ('%@','%@' ,'%@') VALUES ('%@','%@','%@')",@"PERSIONFO",@"NAME",@"AGE",@"SEX",@"张三",@"",@"西城区"];
char *err;
if (sqlite3_exec(database, [sql1 UTF8String], NULL, NULL, &err)!=SQLITE_OK) {
sqlite3_close(database);
NSLog(@"数据库操作失败!");
NSLog(@"%s",err);
}
}

解释:INSERT INTO tablename  向tablename表内的(列名称)VALUES 插入(相应的数据)

第四:查询

-(void)searchSqlite{
NSString*sqlQuery=@"SELECT * FROM PERSONINFO";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, [sqlQuery UTF8String], -, &statement, NULL)==SQLITE_OK) {
while (sqlite3_step(statement)==SQLITE_OK) {
// char *name=(char*)sqlite3_column_text(statement, 1);
NSString*string=[NSString stringWithUTF8String:sqlite3_column_text(statement, )];
NSLog(@"%@",string);;
}
}
}

解释:SELECT * FROM PERSONINFO 从PERSONINFO中取出所有数据

   sqlite3_prepare_v2(database, [sqlQuery UTF8String], -1, &statement, NULL)  参数1.数据库类 参数2.sql语句  参数3.字节的最大长度-1无限制 参数4.输出语句句柄 参数5.输出未使用部分指针    语句返回每行符合过滤的数据

   sqlite3_step(statement)  每步获取一行数据

最后:关闭数据库

-(void)closeSqlite{
sqlite3_close(database);
}

ios sqlite3的简单使用的更多相关文章

  1. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  2. ios下最简单的正则,RegexKitLite

    ios下最简单的正则,RegexKitLite 1.去RegexKitLite下载类库,解压出来会有一个例子包及2个文件,其实用到的就这2个文件,添加到工程中.备用地址:http://www.coco ...

  3. iOS中XMPP简单聊天实现 好友和聊天

    版权声明本文由陈怀哲首发自简书:http://www.jianshu.com/users/9f2e536b78fd/latest_articles;微信公众号:陈怀哲(chenhuaizhe2016) ...

  4. iOS百度地图简单使用详解

    iOS百度地图简单使用详解 百度地图 iOS SDK是一套基于iOS 5.0及以上版本设备的应用程序接口,不仅提供展示地图的基本接口,还提供POI检索.路径规划.地图标注.离线地图.定位.周边雷达等丰 ...

  5. iOS设计模式 - (3)简单工厂模式

    iOS设计模式 - (3)简单工厂模式           by Colin丶 转载请注明出处:              http://blog.csdn.net/hitwhylz/article/ ...

  6. 我的Vue之旅 07 Axios + Golang + Sqlite3 实现简单评论机制

    第三期 · 使用 Vue 3.1 + TailWind.CSS + Axios + Golang + Sqlite3 实现简单评论机制 效果图 CommentArea.vue 我们需要借助js的Dat ...

  7. iOS sqlite3数据库解析

    看来从版本3.3.1基本上已经支持线程句柄的传递功能.具体限制我标记了一下.(6) Is SQLite threadsafe?SQLite is threadsafe. We make this co ...

  8. IOS开发之简单音频播放器

    今天第一次接触IOS开发的UI部分,之前学OC的时候一直在模拟的使用Target-Action回调模式,今天算是真正的用了一次.为了熟悉一下基本控件的使用方法,和UI部分的回调,下面开发了一个特别简易 ...

  9. iOS百度地图简单使用

    本文介绍三种接口: 1.基础地图2.POI检索3.定位 首先是配置环境,有两种方法,方法在官方教程里都有,不再多说 1.使用CocoaPods自动配置[这个方法特别好,因为当你使用CocoaPods配 ...

随机推荐

  1. Spring Data JPA: 实现自定义Repository

    一.前言 由于项目中的 实体(entity)默认都是继承一个父类(包含一些公共的属性,比如创建时间,修改时间,是否删除,主键id).为了实现逻辑删除,一般会自己实现RepositoryFactoryB ...

  2. mvc关于三级联动修改时数据回显

    在网上找了好久,都没有找到自己想要的那种效果,最后还是自己写出来了, 虽然方法有点笨. 这是Controller里 public ActionResult Edit(string id) { //查询 ...

  3. Java系统属性与Preferences API的简单介绍

    系统属性在和Preferences API都是键值对,前者只能当前应用程序中共享数据,而后者可以在用户的各个应用或用户之间共享数据. 系统属性 Java 的系统属性决定了 Java 程序实际运行的环境 ...

  4. JavaScript的连续赋值的思考

    下面是一个连续赋值的例子: 在这里面,先创建a对象并添加n:1,然后将a对象赋值给b,这时候a和b引用同一个对象.最后我们要着重理解这最后一行代码 a.x = a = {n:2}; 按照我们平常的思维 ...

  5. Contains Duplicate leetcode

    Given an array of integers, find if the array contains any duplicates. Your function should return t ...

  6. SQLSERVER2008 错误18456

    我遇到的问题,已经解决,如果你遇到不能解决可以咨询我 1.以windows验证模式进入数据库管理器. 第二步:右击sa,选择属性: 在常规选项卡中,重新填写密码和确认密码(改成个好记的).把强制实施密 ...

  7. 3381: [Usaco2004 Open]Cave Cows 2 洞穴里的牛之二

    3381: [Usaco2004 Open]Cave Cows 2 洞穴里的牛之二 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 21  Solved ...

  8. Java中的枚举的治理

    版权声明:本文为博主原创文章,转载请注明出处,欢迎使劲喷 一.为啥用枚举&为啥要对枚举进行治理 1.先来说说为啥用枚举 表中某个字段标识了这条记录的状态,我们往往使用一些code值来标识,例如 ...

  9. python 的正则表达式 贪婪模式与懒惰模式

    正则表达式中用于表示匹配数量的元字符如下: ? 重复0次或1次,等同于{0,1} * 重复0次或更多次,等同于{0,} + 重复1次或更多次,等同于{1,} {n,} 重复n次及以上 上面的表示匹配次 ...

  10. Python实现Windows定时关机

    是最初的几个爬虫,让我认识了Python这个新朋友,虽然才刚认识了几天,但感觉有种莫名的默契感.每当在别的地方找不到思路,总能在Python找到解决的办法.自动关机,在平时下载大文件,以及跑程序的时候 ...