数据持久化的几种方式:plist、NSUserDefaults、归档、sqlite
sqlite:关系型数据库 以表格的形式存储
在sqlite中类似表格的表头的位置叫做《字段》(字段名不能重复)字段是用来查找数据的关键字(每张表格的关键字不能重名)
可以通过这张表的任意一个字段查找到对应的数据(横着)
在字段的下面是每条数据(存储的内容)
sqlite中 可以有多个表 表与表之间是通过主键和外键关联起来的
操作数据库:
1、sql语句(structured query language)结构化查询语言
sql语句:结构化查询语言组成的一条语句
2、操作数据库的函数(通过C语言来操作的)
#pragma mark-----------
1、sql语句
常用关键字:select、insert、update、delete、from、create、where、desc、order、by、group、table、drop、alter、view、index等等
类型:
integer: 整型值
real: 浮点值
text: 文本字符串
blob: 二进制数据
功能性:建表 删表
建表:create(创建) table(表)
建表公式:create table 表名 (字段名 类型, 字段名 类型);
如果不存在这个表就去创建:create table if not exists 表名 (字段名 类型, 字段名 类型);
例子:create table if not exists user (name text, age integer)
让ID自动增长 把某个字段设置成主键并让它自动增长(primary key autoincrement)
例子:create table if not exists user (idinteger primary key autoincrement, name text, age integer)
删表:drop(删除) table
删表公式:drop table 表名
如果表存在就去删除:drop table if exists user
操作:增 删 改 查
增:insert into values
公式:insert into 表名 (字段名) values(值)
删:delete from
公式:delete from 表名 where 字段 = '值';
改:update from where set
公式:update 表名 set 字段名 = '新值' where 字段名 = '值';
查:select from where
公式:
1、查询某条数据:select 字段(整条数据所有包含的字段) from 表名 where 字段 like ?;
2、查询整个表:select * from 表名
步骤:
1、核对sql语句的合法性
2、绑定要查询的数据
3、开始查询
#pragma mark-----------
ios操作数据的函数步骤
1、导入 sqlite3这个框架*****
2、打开、关闭数据库
sqlite3_open(char *类型的文件路径, 数据库对象的内存地址)
sqlite3_close(数据库对象)
3、(如果没有建表 需要建表)①增 删 改 对应的操作
对表格进行操作:sqlite3_exec(数据库对象, [@"建表(增 删 改)的语句" UTF8String]char *类型的sql语句(要干什么), NULL, NULL, char *类型的字符串(如果有错误会返回一个错误信息))
②查 对应的操作
1、核对sql语句的合法性
2、绑定要查询的数据
3、开始查询、分离查询结果
使用完数据库 及时关闭数据库
1、核对sql语句的合法性
sqlite3_stmt *stmt;结果集 查询的数据放入里面
sqlite3_prepare_v2(数据库的对象, sql语句, 查询语句的长度(-1), 结果集的内存地址, NULL)
2、绑定要查询的数据
sqlite3_bind_text(数据集的对象, 绑定的第几个问号, 要查询的内容(char*), 要查询内容的长度, NULL)
3、开始查询、分离查询结果
while (sqlite3_step(stmt) == SQLITE_ROW) {
sqlite3_column_查询的类型(结果集的对象, 列数)
}