1、数据持久化

  数据持久化是通过文件将数据存储在硬盘上

  iOS下主要有四种数据持久化方式

    属性列表

    对象归档

    SQLite数据库

    CoreData

  数据持久化对的对比

    1.属性列表、对象归档适合小数据量的存储和查询操作

    2、SQLite、CoreData适合大数据的查询和错左

2、SQLite介绍

  SQLite是一款轻型的数据库,是一种关系型数据库管理系统,它的设计目的是为了嵌入式设备中进行使用

  SQLite占有资源非常低,非常适合移动设备中使用,而且它是开源免费的

  它诞生于2000年,已经将近有20年的经历,SQLite3也已经发布,官方网站是www.sqlite.org

3.数据库语句 

  SQL语句(DDL、DML、DQL)

  DDL

    语句包含CREATE和DROP

    创建表和删除表表

  DML

    其语句包含INSERT、UPDATE和DELETE,他们用于田间、修改和删除表中的数据,就是我们常说的增删改

  DQL

    其语句包括SELECT,用于查询数据

4具体的语句

  DDL

    建立表格

    CREATE TABLE 表格名 (字段1 字段1的类型,字段2 字段2的类型);

    删除表格

    DROP TABLE 表格名字;

  DML

    插入INSERT

    INSERT INTO 表格名字 (字段1,字段2。。。。) VALUES(数值1,数值2);

    删除DELETE

    DELETE FROM 表哥名

    如果在删除数据时,如果没有删除条件,将会删除所有值。如果想按照一定条件来删除数据,则需要田间where语句 (and表示前后两个条件都要符合)

    UPDATE修改

    UPDATE 表的名字 SET 修改修改的字段名 = 需要修改的值 WHERE筛选条件;

    如果需要一次性修改多个字段的值,选哟将这几个字段,用逗号隔开

  DQL语句

    查询某一个表格中的数据

    使用SELECT语句进行查询表格中的数据,能够需要指定查询的字段。如果需要查询所有的字段,则用统配符*代替

    可以使用条件语句WHERE,来设定返回数据的筛选条件

  排序查询结果

    查询得到的结果,可以按照关键词ORDER BY来指定排序条件。ASC升序 DESC降序

  模糊查询

    使用LIKE关键词,能够执行模糊查询,一般使用text类型数据

    SELECT *FORM 表格名 WHERE 需要模糊查询的字段 LIKE ‘模糊查询条件,使用%来替代任意字符’

  设置显示的数据数量

    在查询比较多的情况下,如果查询的结果比较多,查询速度就会比较慢,并且返回结果所占据的内存也有可能比较大

    SELECT * FROM 表格名 ORDER BY age ASC LIMIT x,y;

    查询的结果进行升序排列,从x开始,往后显示y条数据

   约束

    在建立表格,设定字段时,能够给字段添加约束条件

   简单约束

    不能为空

    NOT NULL 用于约束某一个字段。被NOT NULL约束的字段,在使用SQL语句插入或者修改的时候,不能设置为空。

    唯一

    在同一个表格里,某一个字段设置唯一的值。那么在字段多条数据中,不能出现重复。

    默认值

    默认值能够设定某一个字段,在没有设置具体指的条件下,将会被设置成默认值

  

    主键约束

      之间是用于区分数据表中不同数据的编码。则整个编码在没一个表格中都是独一无二的。在设计主键时应该遵守以下原则

      1.主键应该对该用户没有意义(学号、身份证号没有具体的意义)

      2.主键的值,无法修改,主键一旦生成,就无法被改变

      3.主键的值应该由系统自动生成,只有主键有系统自动生成,这样将会完完整整的确保主键的完整性

      4.一个数据表中,最多只能有一个主键

    主键的自动增长

      AUTOINCREMENT修饰主键,可以让主键自动增长

      1.插入数据时,手动设置主键的值,能够来设置主键

      2.如果没有手动设置的主键,则自动使用比前表中数据最大的的数据大一的主键

  

    外间约束

      两张表格之间,存在着数据的联系。为了能够通过一个表格的数据,查询对应的数据,可以是哟个外键进行关联

      TABLE(id name age);table(id person ....)

      将A中的ID,作为外键和B中的Person进行关联

      代码

      

    注意:使用REFERENCES关键词,能够绑定外键关联。一般来说,绑定另一张表格中的主键是最好的选择。在插入数据时,需要注意的是,外键的值,必须要是能够在所关联的表格中,存在并且唯一的相应的数据

  

    多表联查

    在有外键关联的情况下,查询表格,需要在两个表格中,同时获得数据。需要使用到夺标联查

    SELECT * form 表格1 ON 表格1中的字段=相对用表格2中的字段

    

  如果想了解更多的数据库关系,http://www.w3school.com.cn/sql/index.asp,可以在这个网站进行学习

  我写这个是给学ios没有任何数据库基础看的。

iOS中数据库运用之前的准备-简单的数据库的更多相关文章

  1. iOS中 动态启动图GIF的简单设置 韩俊强的博客

    // 设定位置和大小 CGRect frame = CGRectMake(50,340,[UIScreen mainScreen].bounds.size.width / 2,[UIScreen ma ...

  2. iOS中的MVC

      我们今天谈谈cocoa程序设计中的 模型-视图-控制器(MVC)范型.我们将从两大方面来讨论MVC: 什么是MVC? M.V.C之间的交流方式是什么样子的? 理解了MVC的概念,对cocoa程序开 ...

  3. iOS中数据库应用基础

    iOS 数据库入门 一.数据库简介 1.什么是数据库? 数据库(Database) 是按照数据结构来组织,存储和管理数据的仓库 数据库可以分为2大种类 关系型数据库(主流) PC端 Oracle My ...

  4. iOS 中SQLite数据库操作

    在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查 实现简单 SQLite数据库操作 的 ...

  5. 在IOS中使用DES算法对Sqlite数据库进行内容加密存储并读取解密

    在IOS中使用DES算法对Sqlite 数据库进行内容加密存储并读取解密 涉及知识点: 1.DES加密算法: 2.OC对Sqlite数据库的读写: 3.IOS APP文件存储的两种方式及读取方式. 以 ...

  6. iOS中的数据库应用

    iOS中的数据库应用 SLQLite简介 什么是SQLite SQLite是一款轻型的嵌入式数据库 它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了 它的处理速度比Mysql.Post ...

  7. 数据库sqlite3的使用-ios中引用方法

    一.简单说明 在iOS中使用SQLite3,首先要添加库文件libsqlite3.dylib和导入主头文件. 导入头文件,可以使用库中的函数(是纯C语言的) 二.具体说明 新建一个项目,在项目的主界面 ...

  8. iOS中的数据库—使用FMDB

    一.回顾 iOS中的数据存储方式 1.XML属性列表(plist) 写入OC的一些基本数据类型,不是所有对象都可以写入 2.Preference(偏好设置) 本质还是通过“plist”来存储数据,但是 ...

  9. 【IOS】ios中NSUserDefault与android中的SharedPreference用法简单对比

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3405308.html 有Android开发经验的朋友对Shar ...

  10. Objective-C ,ios,iphone开发基础:ios数据库(The SQLite Database),使用终端进行简单的数据库操作

    SQLite  是一个轻量级的免费关系数据库.SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的内存就够了,可以在(http://www.sqlite.org ...

随机推荐

  1. 【转】linux中的cut/tr/join/split/xargs命令

    1. cut命令 cut命令用于从文件或者标准输入中读取内容并截取每一行的特定部分并送到标准输出. 截取的方式有三种:一是按照字符位置,二是按照字节位置,三是使用一个分隔符将一行分割成多个field, ...

  2. [置顶] 【玩转cocos2d-x之七】场景类CCScene和布景类CCLayer

    原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12708811 场景类CCScene和布景类CCLayer都是作为一个容器来使 ...

  3. scrollLeft、offsetLeft、clientLeft、clientHeight详解

    offsetLeft:Html元素相对于自己的offsetParent元素的位置 scrollLeft:返回和设置当前横向滚动务的坐标值 scrollLeft.offsetLeft.clientLef ...

  4. swift 定义类方法(type methed)

    swift   中声明结构体或者枚举的类型方法,需要在func前加上关键字 ststic  ,但是如果要定义一个类的类方法时,需要用关键字 class class SomeClass { class ...

  5. 绿荫工作室爱选修app内测

    下载地址:http://greendasungta.com/greencms/ixuanxiu.apk 开发目的是用于方便在校生的选课操作以及对选修课的交流.

  6. 数据结构与算法分析(2)——表、栈和队列

      抽象数据类型     抽象数据类型(ADT)是一系列操作的集合.诸如表.集合.图和他们的操作一起可以看做是抽象数据类型 表 List 表的实现有两种:数组和链表.数组实现的表在插入和删除操作上的花 ...

  7. [转]ASP.NET MVC 2: Model Validation

    本文转自:http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx?CommentPo ...

  8. VSPackge插件系列:常用IDE功能的封装

    继上一篇VSPackge插件系列简单介绍如何正确的获取DTE之后,就一直没发VSPackge插件系列的文章了,最近同事也想了解如何在代码中与VS交互,特发一篇文章示例一些简单功能是如何调用,也以备以后 ...

  9. [java小笔记] 关于数组内存管理的理解

    数组是大多数编程语言都提供的一种复合结构,如果程序需要多个类型相同的变量时,就可以考虑定义一个数组,java语言的数组变量时引用类型的变量,因此具有java引用变量的特性.在使用数组之前必须对数组对象 ...

  10. HTTPS协议学习总结

    目录 一:什么是HTTPS协议?二:客户端与服务端如何建立HTTPS协议连接?三:证书.加密协议.信息摘要.签名算法概念解释与关系梳理四:低版本操作系统作为客户端发送HTTPS失败分析五:参考资料   ...