第一:创建表格

//创建表格
-(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. Git 基本工作流程

    1. 用户信息配置(全局配置) $ git config --global user.name leo$ git config --global user.email hehe_xiao@qq.com ...

  2. MyBatis 使用Generator自动生成Model , Dao, mapper

    最近   我新建了一 个maven 项目,使用的是spring + springmvc + mybatis框架. 听说Mybatis可以自动生成model和mapper以及dao层,我就从网上查了查资 ...

  3. Extjs中grid前端分页使用PagingMemoryProxy【二】

        在项目中遇到Grid前端分页,本人也是刚接触extjs没多久,为了实现效果,一直找了很久才实现出来,对于代码中的一些也不能详细的说明出来, 不知道能不能帮助到遇到同样问题的朋友,所以将例子代码 ...

  4. tp框架基础知识

    作者:黄力军 index.php入口文件:作用,所有tp框架里的内容要想访问文件.都要走index.php文件他是整个程序的入口 Application代表应用程序的目录   所有写的应用程序放这里 ...

  5. weblogic 双机集群搭建

    weblogic 双机集群搭建,基本步骤引用百度文库的一篇文章: wenlogic双机集群基本步骤 下面详解一下该文章搭建后会遇到的问题: 1. 主机名验证失败 javax.net.ssl.SSLKe ...

  6. C++ IO学习

    关于IO,主要有这么三种类型:标准输入输出,文件输入输出,字符串流.后面两种都是继承自第一种标准输入输出的.他们分别对应的头文件是: 标准输入输出:#include <iostream> ...

  7. Solr field alias

    Field alias Any field, function, or transformer can be displayed with a different name in the output ...

  8. 双系统删除Ubuntu后出现grub界面而无法正常启动Windows系统的解决方法

    第一次安装双系统的时候由于不怎么会弄,设置了ubuntu引导windows,这种方法是非常不推荐的,因为当ubuntu出现问题或者是当你不再使用ubuntu的时候,删除ubuntu就会成为一个很麻烦的 ...

  9. C++ Primer 5 CH2 变量和基本类型

    C++ 是一种静态数据类型语言,它的类型检查发生在编译时.因此,编译器需要知道每一个变量对应的数据类型. 2.1 基本内置类型 算术类型 C++ 标准并没有规定带符号类型应如何表示,但是约定了在表示范 ...

  10. HDFS入门(1)

    2015.07.12笔记 1.HDFS Distributed File System(操作系统实现人机交互,最重要的功能是文件管理,使用文件管理系统,windows.Linux文件管理系统有共性:用 ...