iOS应用数据存储2-SQLite3数据库
SQLite3
- SQLite3是一款开源的嵌入式关系型数据库,可移植性好,易使用,内存开销小.
- SQLite3是无类型的,意味着你可以保存任何类型的数据到任意表的任意字段中.
- SQLite3常用的4种数据类型:text(文本字符串), integer(整型值), real(浮点值), blob(二进制数据(比如文件)).
- 在iOS中使用SQLite3,首先要添加库文件'libsqlite3.dylib'和导入主头文件#import<sqlite3.h>
SQL语句的特点:
1> 不区分大小写;
2> 每条语句都必须以分号;结尾
SQL中常用的关键字:
pselect、insert、update、delete、from、create、where、desc、order、by、group、table、alter、view、index等等
数据库中不可以使用关键字来命名表,字段.
数据库的使用:
- 创建数据库:
- sqlite3_open()打开数据库
- sqlite3_exec()创建数据库表(每个表都有表名,一个数据库可以有多个表)
- sqlite3_close()释放资源
- 查询数据:
- sqlite3_open() 打开数据库
- sqlite3_prepare_v2() 预处理SQL语句
- sqlite3_bind_text() 绑定参数
- sqlite3_step()执行SQL查询语句,遍历结果
- sqlite3_column_text()提取字段数据
- sqlite3_finalize()、sqlite3_close()释放资源
- 修改数据
- sqlite3_open() 打开数据库
- sqlite3_prepare_v2() 预处理SQL语句
- sqlite3_bind_text() 绑定参数
- sqlite3_step()执行SQL查询语句,遍历结果
- sqlite3_finalize()、sqlite3_close()释放资源
SQL语句种类:
1> 数据创建语句
包括create和drop等操作 ;
在数据库中创建新表或删除表(create table或 drop table).
创表:
create table if not exists database(id integer, name text, age inetger, score real) ;
删表:
drop table if exists database;
2> 数据操作语句(DML:Data Manipulation Language)
包括insert、update、delete等操作 ;
上面的3种操作分别用于添加、修改、删除表中的数据 .
- 插入数据(insert):
insert into database (name, age) values ('JN', 22) ;
注意:数据库中的字符串内容应该用单引号''括住.
- 更新数据(updata):
update database set name = 'jack', age = 20 ;
注意:上面的更新会将database表中所有记录的name都改为jack,age都改为20;
update database set name = ?, age = ? ;
?表示占位符,要改变的参数
- 删除数据(delete):
delete from database;
会将database表中所有记录都删掉.
如果只想更新或者删除某些固定的记录,那就必须在语句后加上一些条件.示例如下:
// 将database表中年龄大于10 并且 姓名不等于jack的记录,年龄都改为 5
update t_student set age = 5 where age > 10 and name != ‘jack’ ;
// 删除database表中年龄小于等于10 或者 年龄大于30的记录
delete from database where age <= 10 or age > 30 ;
3> 数据查询语句(DQL:Data Query Language)
可以用于查询获得表中的数据 ;
关键字select是DQL(也是所有SQL)用得最多的操作 ;
其他DQL常用的关键字有where,order by,group by和having创建.
查询语句(DQL):
// 条件查询条件语句:
select * from database where age > 10
//查询所有数据:
Select name, age from database
主键约束:
每张表都必须有一个主键,用来标识记录的唯一性.
什么是主键:
主键(Primary Key,简称PK),用来唯一的标识某一条记录.
例如database可以增加一个id字段作为主键,相当于人的身份证.
主键可以是一个字段或多个字段.
外键约束:
利用外键约束可以来建立表与表之间的联系.
外键的一般情况是:一张表的某个字段引用着另一张表的主键字段.
获取数据库方式:
- 自己建立数据库
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"database.sqlite"];
- 访问本地写好的数据库
NSString *filename = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@" database.sqlite "];
NSError *error;
// 将放在项目目录中的数据库复制到沙盒中
NSBundle *bundle = [NSBundle mainBundle];
NSString *filenameAgo = [bundle pathForResource:@" database " ofType:@" sqlite "];
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager copyItemAtPath:filenameAgo toPath:filename error:&error];
解决路径为空的解决方法:
[NSPlaceholderString initWithUTF8String:]: NULL cString
- 在拖入db文件到工程时,苹果默认把add Target前面的勾给去掉了!!!导致无论如何也找不到我们导入的db文件,so,解决方法就是:
把db文件从工程中删除,然后重新拖进去,当弹出窗口时,别着急着看都没看就点next,把add Target前面的勾勾上,然后就会发现,真的好了!
iOS应用数据存储2-SQLite3数据库的更多相关文章
- iOS 应用数据存储方式(XML属性列表-plist)
iOS 应用数据存储方式(XML属性列表-plist) 一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存储自定义对象) ...
- iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist) 一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存 ...
- iOS本地数据存储(转载)
看到一篇不错的文章,推荐给大家!!! 应用沙盒 1)每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 2)应用沙盒的文 ...
- iOS应用数据存储的常用方式
iOS应用 数据存储的常用方式 XML属性列表 plist Preference 偏好设置 NSKeyedArchiver 归档 Core Data SQLite3 应用沙盒: Layer: ...
- IOS开发数据存储篇—IOS中的几种数据存储方式
IOS开发数据存储篇—IOS中的几种数据存储方式 发表于2016/4/5 21:02:09 421人阅读 分类: 数据存储 在项目开发当中,我们经常会对一些数据进行本地缓存处理.离线缓存的数据一般都 ...
- Android数据存储之SQLite数据库
Android数据存储 之SQLite数据库简介 SQLite的相关知识,并结合Java实现对SQLite数据库的操作. SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎. ...
- iOS开发UI篇—ios应用数据存储方式(偏好设置)
iOS开发UI篇—ios应用数据存储方式(偏好设置) 一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用 ...
- iOS开发UI篇—ios应用数据存储方式(归档)
iOS开发UI篇—ios应用数据存储方式(归档) 一.简单说明 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦: 偏好设置(将所有的东西都保存在同 ...
- iOS开发技术分享(1)— iOS本地数据存储
iOS开发技术分享(1)— iOS本地数据存储 前言: 我本是一名asp.net程序员,后来加入了iOS游戏开发队伍,到现在也有一年多的时间了.这一年来,每天都干到2.3点钟才睡觉,不为别的,只为了学 ...
- iOS开发UI篇—ios应用数据存储方式(归档) :转发
本文转发至:文顶顶http://www.cnblogs.com/wendingding/p/3775293.html iOS开发UI篇—ios应用数据存储方式(归档) 一.简单说明 在使用plist ...
随机推荐
- Codeforces 749C:Voting(暴力模拟)
http://codeforces.com/problemset/problem/749/C 题意:有n个人投票,分为 D 和 R 两派,从1~n的顺序投票,轮到某人投票的时候,他可以将对方的一个人K ...
- jQuery 选择器 (基础恶补)
jQuery 元素选择器 jQuery 使用 CSS 选择器来选取 HTML 元素. $("p") 选取 <p> 元素. $("p.intro") ...
- easyui DataGrid 工具类之 Utils class
import java.lang.reflect.InvocationTargetException;import java.text.ParseException;import java.text. ...
- httpd服务安装
1.配置yum ps:详见YUM源设置篇 2输入yum install httpd -y 进行安装 3安装完成后,重启httpd服务 service httpd restart ...
- [转](五)unity4.6Ugui中文教程文档-------概要-UGUI Interaction Components
大家好,我是孙广东. 转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unityma ...
- centos7 gitlab
yum -y update chmod +x /etc/rc.d/rc.local vi /etc/selinux/config SELINUX=disabled reboot vi /etc/hos ...
- WebSocket实战之————Workerman服务器的安装启动
安装php apt-get install php5-cli root@iZ23b64pe35Z:/home/www# php -v PHP 5.5.9-1ubuntu4.20 (cli) (buil ...
- Deep Learning 3_深度学习UFLDL教程:预处理之主成分分析与白化_总结(斯坦福大学深度学习教程)
1PCA ①PCA的作用:一是降维:二是可用于数据可视化: 注意:降维的原因是因为原始数据太大,希望提高训练速度但又不希望产生很大的误差. ② PCA的使用场合:一是希望提高训练速度:二是内存太小:三 ...
- JS Map 和 List 的简单实现代码
javascript中是没有map和list 结构的. 本篇文章是对在JS中Map和List的简单实现代码进行了详细的分析介绍,需要的朋友参考下 代码如下: /* * MAP对象,实现MAP功能 * ...
- php 对多维数组排序array_multisort
php 对多维数组排序array_multisort 排序顺序标志: SORT_ASC - 按照上升顺序排序 SORT_DESC - 按照下降顺序排序 排序类型标志: SORT_REGULAR - 将 ...