美文网首页与时俱进的IT
UI(十七)数据库->数据持久化

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

作者: 社会主义顶梁鹿 | 来源:发表于2018-07-30 17:53 被阅读0次

    数据持久化的几种方式: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(十七)数据库->数据持久化

        本文链接:https://www.haomeiwen.com/subject/khzfvftx.html