UI(十七)数据库->数据持久化

数据持久化的几种方式: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_查询的类型(结果集的对象, 列数)

     }

你可能感兴趣的:(UI(十七)数据库->数据持久化)