iOS虽然也有SQL,不过用得少(至少我目前是这样)。大数据直接丢给后台,小的用Plist足矣。

再退一步,有FMDB,原生的也用得少了。

下面是之前学SQL时候的笔记。

1、创建

1-1)、打开: 数据库指针、保存地址

sqlite3_open([path UTF8String], &new_sql)

1-2)、创建: 数据库指针、创建指令、错误指令

NSString *command = @"CREATE TABLE IF NOT EXISTS UserTable (username TEXT primary key,password TEXT,age TEXT)";

sqlite3_exec(new_sql, [command UTF8String], NULL, NULL, &new_error)

1-3)、关闭: 数据库指针

sqlite3_close(new_sql);

2、插入

2-1)、打开: 数据库指针、保存地址

同上

2-2)、插入:

//插入:指令
NSString *op = @"INSERT INTO UserTable(username,password,age) VALUES (?,?,?)"; //准备: 数据库指针、插入指令、句柄
sqlite3_prepare(new_sql, [op UTF8String], -1, &new_stmt, NULL); //绑定: 句柄、位置、数据
sqlite3_bind_text(new_stmt, 1, [name UTF8String], -1, NULL); //下一步: 句柄
sqlite3_step(new_stmt); //结束: 句柄
sqlite3_finalize(new_stmt);

2-3)、关闭: 数据库指针

同上

3、删除

3-1)、打开: 数据库指针、保存地址

同上

3-2)、删除:

//删除指令:
NSString *op = @"DELETE FROM userTable WHERE userName = ?"; //准备: 数据库指针、删除指令、句柄
sqlite3_prepare(new_sql, [op UTF8String], -1, &new_stmt, NULL); //绑定: 句柄、位置、数据
sqlite3_bind_text(new_stmt, 1, [name UTF8String], -1, NULL); //下一步: 句柄
sqlite3_step(new_stmt); //结束: 句柄
sqlite3_finalize(new_stmt);

3-3)、关闭: 数据库指针

同上

4、选择

4-1)、打开: 数据库指针、保存地址

同上

4-2)、选择:

//选择指令:
1)NSString *op = @"SELECT username,password,age From UserTable where username = ?";
2)NSString *op = @"SELECT username,password,age From UserTable"; //准备: 数据库指针、选择指令、句柄
sqlite3_prepare(new_sql, [op UTF8String], -1, &new_stmt, NULL); //绑定: 句柄、位置、数据
sqlite3_bind_text(new_stmt, 1, [selet_name UTF8String], -1, NULL); //下一步: 句柄
sqlite3_step(new_stmt); //遍历:
while (result == SQLITE_ROW)
{
char *c_name = (char *)sqlite3_column_text(new_stmt, 0);
char *c_password = (char *)sqlite3_column_text(new_stmt, 1);
char *c_age = (char *)sqlite3_column_text(new_stmt, 2); NSString *s_name = [NSString stringWithCString:c_name encoding:NSUTF8StringEncoding];
NSString *s_password = [NSString stringWithCString:c_password encoding:NSUTF8StringEncoding];
NSString *s_age = [NSString stringWithCString:c_age encoding:NSUTF8StringEncoding]; NSLog(@"%@,%@,%@",s_name,s_password,s_age);
result = sqlite3_step(new_stmt);
//NSLog(@"%d",new_stmt);
} //结束: 句柄
sqlite3_finalize(new_stmt);

4-3)、关闭: 数据库指针

同上

附录:

5、插入变体:更新

@"UPDATE UserTable SET password = ? where username = ?"

6、选择变体:排序

@"SELECT * FROM userTable ORDER BY age ASC(DESC)"

iOS:SQL的更多相关文章

  1. MyBatis3:SQL映射

    前言 前面学习了config.xml,下面就要进入MyBatis的核心SQL映射了,第一篇文章的时候,student.xml里面是这么写的: <?xml version="1.0&qu ...

  2. iOS:小技巧(不断更新)

    记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] ...

  3. iOS:实现图片的无限轮播(二)---之使用第三方库SDCycleScrollView

    iOS:实现图片的无限轮播(二)---之使用第三方库SDCycleScrollView 时间:2016-01-19 19:13:43      阅读:630      评论:0      收藏:0   ...

  4. [SDK2.2]SQL Azure (13) Azure的两种关系型数据库服务:SQL Azure与SQL Server VM的不同

    <Windows Azure Platform 系列文章目录> 如果熟悉Windows Azure平台的用户不难发现,对于SQL Server数据库来说,微软提供了两种服务,分别是: -W ...

  5. SQL Server安全(1/11):SQL Server安全概述

    在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...

  6. iOS:CYLTabBarController【低耦合集成TabBarController】

    导航 与其他自定义TabBarController的区别 集成后的效果 项目结构 使用CYLTabBarController 第一步:使用CocoaPods导入CYLTabBarController ...

  7. SQL2005:SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作的解决办法

    SQL2005 还原数据库失败,提示如下: SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作的解决办法 出现错误时操作步骤为:右击数据库--->任务- ...

  8. iOS:iOS开发非常全的三方库、插件等等

    iOS开发非常全的三方库.插件等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自git ...

  9. 转载: SQL Server中的索引

    http://www.blogjava.net/wangdetian168/archive/2011/03/07/347192.html 1 SQL Server中的索引 索引是与表或视图关联的磁盘上 ...

随机推荐

  1. 浮动的补充丶文本和字体属性丶background丶定位

    一丶浮动的补充 浮动的特性: 1. 浮动的元素脱标 2.浮动的元素互相贴靠 3.浮动的元素有"字围"效果 4.浮动的元素有收缩的效果 前提是标准文档流,margin的垂直方向会出现 ...

  2. Qt QDialog将窗体变为顶层窗体(activateWindow(); 和 raise() )

    m_pLoginDlg->hide(); m_pLoginDlg->activateWindow(); //m_pLoginDlg->raise(); m_pLoginDlg-> ...

  3. js下拉框去掉重复的

    想用jquery代码实现这样的一个功能:有一个下拉框,当选择下拉框的时候,判断选择的值有没有被选择过,如果有则提示:代码如下: $(function(){ var authTypes=new Arra ...

  4. C++异常安全

    转自:http://www.cnblogs.com/zgfLawliet/p/3417308.html   异常安全的代码是指,满足两个条件 1异常中立性 : 是指当你的代码(包括你调用的代码)引发异 ...

  5. SQL Server ->> 无法将数据库从SINGLE_USER模式切换回MULTI_USER模式(Error 5064)

    报错信息如下: Msg 5064, Level 16, State 1, Line 1Changes to the state or options of database 'test' cannot ...

  6. IE浏览器 div或者其他容器的height属性无效 滚动条问题解决办法

    1.height设置定值是功能好使的  但是如果在不同分辨率的电脑上运行程序 会出现样式上的偏差 2.height的百分比是根据父级来的  所以将父级的height设置好(如果当前容器上方有很多父级 ...

  7. Excel使用SUMIF函数注意事项

    sumif函数的公式使用方法如下: =sumif(查询匹配的区域,条件,汇总求和的区域) 条件可以是“>10”或"=10"这种格式.其中“查询匹配区域”和“汇总求和区域”需要 ...

  8. 【Leetcode】【Medium】Subsets II

    Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...

  9. C# 之 Request

    Request.QueryString(取得地址栏参数值)获取地址栏中的参数,意思就是取得”?"号后面的参数值.如果是多个是用这”&”符号连接起来的.Request.form取得表单 ...

  10. 41. First Missing Positive (sort) O(n) time

    Given an unsorted integer array, find the smallest missing positive integer. Example 1: Input: [1,2, ...