第一:创建表格

//创建表格
-(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. 页面添加数据的PHP

    (接前面写的) 第一个页面tianjia.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  2. js substr和substring的区别

    在js中substring和substr都是用来截取字符串的,substr函数和substring函数都是用来从某个“母字符串”中提取“子字符串”的函数.但用法有些差别,下面分别介绍但是它们还是有区别 ...

  3. CSS,注意点!!!!!!!

    css 一.整体布局 1.创建一个html标签 2.创建三个div标签(分别是网页的头部,中间,和底部三部分) 3.一般都用class选择器 4.用css给body标签加个 margin:0(用于消除 ...

  4. Apache Struts2存在S2-045

    麻蛋的,批了老半天都找不到,还得谷歌 不扯蛋了,直接主题: Struts2 2.3.32 版本 下载地址:https://dist.apache.org/repos/dist/release/stru ...

  5. 关于使用mybatis中mapper instrances,通过session另一种操作方式

    String resource = "mybatis-config.xml"; InputStream inputStream = null; try { // 获取SqlSess ...

  6. 1640: [Usaco2007 Nov]Best Cow Line 队列变换

    1640: [Usaco2007 Nov]Best Cow Line 队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 543  Solved: 2 ...

  7. TSQL语句和CRUD(20161016)

    上午 TSQL语句 1.创建数据库 create database test2; 2.删除数据库 drop database test2; 3.创建表 create table ceshi ( ids ...

  8. linux内核链表---挑战常规思维

    一.普通链表 1.一般教材上的链表定义如下: struct node{ int content: node *next: }: 它将指针域放在链表节点中,上一个节点指针域中的值指向下一个节点的首地址, ...

  9. DBMS

    数据库中的概念 Catalog(分类) Table(表) Column(列)或者Field(字段) Primary(主键):唯一标识数据行的一列 业务主键:有业务意义的字段做主键 逻辑主键:使用没有任 ...

  10. Swift3.0 函数闭包与OC Block

    刚接触Swift,如有不对的点,欢迎指正.转载请说明出处 定义一个基本函数 //定义一个函数,接收一个字符串,返回一个String类型的值 func test(name:String) -> S ...