SQLite3.0使用的是C的函数接口,常用函数如下:

sqlite3_open()           //打开数据库      

sqlite3_close()           //关闭数据库

sqlite3_exec()           //执行sql语句,例如创建表

sqlite3_prepare_v2()        //编译SQL语句

sqlite3_step()           //执行查询SQL语句

sqlite3_finalize()          //结束sql语句

sqlite3_bind_text()        //绑定参数

sqlite3_column_text()       //查询字段上的数据

创建数据库表

sqlite3 *sqlite = nil;

NSString *filePath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",@"data.sqlite"];

int result = sqlite3_open([filePath UTF8String],&sqlite);

if (result != SQLITE_OK) {

  NSLog(@"打开数据失败");

}

//创建表的SQL语句

NSString *sql = @"CREATE TABLE UserTable (userId text NOT NULL PRIMARY KEY UNIQUE,username text, age integer)";

char *error;

//执行SQL语句

result = sqlite3_exec(sqlite,[sql UTF8String],NULL, NULL, &error);

if (result != SQLITE_OK) {

  NSLog(@"创建数据库失败,%s",erorr);

}

sqlite_close(sqlite);

插入数据

sqlite3 *sqlite = nil;

sqlite3_stmt = *stmt = nil;

NSString *filePath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",@"data.sqlite"];

int result = sqlite3_open([filePath UTF8String],&sqlite);

if (result = SQLITE_OK) {

  NSLog(@"打开数据失败");

}

NSString *sql = @"INSERT INTO UserTable(userId,userName,age) VALUES(?,?,?)";

sqlite3_prepare_v2(sqlite, [sql UTF8String], -1, &stmt ,NULL);

NSString *userId = @"1002";

NSString *username = @"张三";

int age = 3;

//往SQL中填充数据

sqlite3_bind_text(stmt, 1, [userId UTF8String], -1, NULL);

sqlite3_bind_text(stmt, 2, [userName UTF8String], -1,NULL);

sqlite3_bind_int(stmt, 3, age);

result = sqlite3_step(stmt);

if (result == SQLITE_ERROR || result == SQLITE_MISUSE) {

  NSLog(@"执行SQL语句失败");

  return NO;

}

sqlite3_finalize(stmt);

sqlite3_close(sqlite);

查询数据

sqlite3 *sqlite = nil;

sqlite3_stmt *stmt = nil;

NSString *filePath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",@"data.sqlite"];

int result = sqlite3_open([filePath UTF8String],&sqlite);

if (result != SQLITE_OK) {

  NSLog(@"打开数据失败");

}

NSString *sql = @"SELECT userId, userName,age FROM UserTable WHERE age >?";

sqlite3_prepare_v2(sqlite, [sql UTF8String], -1,&stmt, NULL);

int age = 1;

sqlite3_bind_int(stmt, 1,age);

result = sqlite3_step(stmt);

//循环遍历查询后的数据列表

while (result == SQLITE_ROW)  {

  char *userid = (char*)sqlite3_column_text(stmt,0);

  char *username = (char*)sqlite3_column_text(stmt,1);

  int  age = sqlite3_column_int(stmt,2);

  

  NSString *userId = [NSString stringWithCString:userid encoding:NSUTF8StringEncoding];

  NSString *userName = [NSString stringWithCString:username encoding:NSUTF8StringEncoding];

  NSLog(@"-----用户名:%@,用户id:%@,年龄:%d---",userName,userId,age);

  result = sqlite3_step(stmt);

}

sqlite3_finalize(stmt);

sqlite3_close(sqlite);

SQLite常用函数及语句的更多相关文章

  1. Sqlite 常用函数推荐

    Sqlite 常用函数 1 .打开数据库: 说明:打开一个数据库,文件名不一定要存在,如果此文件不存在, sqlite 会自动创建.第一个参数指文件名,第二个参数则是定义的 sqlite3 ** 结构 ...

  2. SQLite 常用函数

    SQLite 常用函数 参考: SQLite 常用函数 | 菜鸟教程http://www.runoob.com/sqlite/sqlite-functions.html SQLite 常用函数 SQL ...

  3. Python常用函数--return 语句

    在Python教程中return 语句是函数中常用的一个语句.return 语句用于从函数中返回,也就是中断函数.我们也可以选择在中断函数时从函数中返回一个值.案例(保存为 function_retu ...

  4. SQL注入的常用函数和语句

    1.系统函数 version()   Mysql版本user()   数据库用户名database()    数据库名@@datadir   数据库路径@@version_compile_os   操 ...

  5. MySQL 常用函数和语句笔记

    CONCAT()函数 CONCAT()函数代表着字符串的链接,例子有 SELECT COUNT(1) FROM ums_commodity WHERE 1 = 1 and deleted=0 and ...

  6. SQLite常用函数

    length(column_name) 取得相应栏位的长度 substr(column_name, start, length) 截取某个栏位相应长度的值

  7. sqlite 常用的一些语句

    转载:https://blog.csdn.net/qq_25221835/article/details/82768375 转载:https://blog.csdn.net/qq_35449730/a ...

  8. SQLite进阶-19.常用函数

    目录 SQLite常用函数 SQLite常用函数 SQLite 有许多内置函数用于处理字符串或数字数据. 序号 函数 & 描述 1 SQLite COUNT 函数SQLite COUNT 聚集 ...

  9. iOS开发数据库篇—SQLite常用的函数

    iOS开发数据库篇—SQLite常用的函数 一.简单说明 1.打开数据库 int sqlite3_open( const char *filename,   // 数据库的文件路径 sqlite3 * ...

随机推荐

  1. 2017-07-05 (whereis which find)

    whereis whereis 命令名 作用 搜索命令所在的路径以及帮助文档所在的位置 选项 -b 搜索命令所在的位置 -m 搜索帮助文档所在的位置 例子 whereis ls  查看ls命令所在的位 ...

  2. mysql超出最大连接数解决方法

    遇到mysql超出最大连接数,相信不少人第一反应就是查看mysql进程,看有没有慢查询,当然这个做法是完全正确的!但是很多时候真正的问题不在这里.今天有遇到同样的问题,一味查看mysql进程和慢查询日 ...

  3. Win8无法访问xp共享的解决方法——win8网上邻居访问别的xp电脑要用户名和密码取消方法

    新装win8,原来的win7正常连接xp下载机的共享,但在win8下进网上邻居却无法访问xp的共享,显示”用户名或密码不正确”,而密码明明是对的如图所示: 解决方法: 按Win+R启动运行,输secp ...

  4. 比较Maven和Ant

    从今天开始,整理maven一系列. Maven 它是什么? 如何回答这个问题要看你怎么看这个问题. 绝大部分Maven用户都称Maven是一个"构建工具":一个用来把源代码构建成可 ...

  5. linkin大话设计模式--桥接模式

    linkin大话设计模式--桥接模式 桥接模式是一种结构化模式,他主要应对的是:由于实际的需要,某个类具有2个或者2个以上维度的变化,如果只是使用继承将无法实现功能,或者会使得设计变得相当的臃肿.我们 ...

  6. JAVA中比较两个文件夹不同的方法

    JAVA中比较两个文件夹不同的方法,可以通过两步来完成,首先遍历获取到文件夹下的所有文件夹和文件,再通过文件路径和文件的MD5值来判断文件的异同.具体例子如下: public class TestFo ...

  7. 【转】城市CORS系统建设

    随着GPS技术的飞速进步和应用普及,它在城市测量中的作用已越来越重要.当前,利用多基站网络RTK技术建立的连续运行卫星定位服务综合系统(Continuous Operational Reference ...

  8. jenkins安装配置[二]

    标签(linux): jenkins 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 安装依赖,如果本机已有java环境可跳过 yum install java- ...

  9. History对象和location对象

    history对象 History对象包含用户在浏览器窗口中访问过的url.不是所有浏览器都支持该对象. 属性length   返回浏览器历史列表中的URL数量. 方法:back() 加载histor ...

  10. C#基础(二)--之数据类型

    在第一章我们了解了C#的输入.输出语句后,我这一节主要是介绍C#的基础知识,本节的内容也是后续章节的基础,好的开端等于成功的一半.在你阅读完本章后,你就有足够的C#知识编写简单的程序了.但还不能使用继 ...