美文网首页
iOS数据库存储

iOS数据库存储

作者: 水晶可乐Z | 来源:发表于2016-05-22 01:21 被阅读638次

###iOS数据库存储

* 表连接的解释

http://www.blogjava.net/zolly/archive/2007/10/23/SQLJION.html

sqlite语句

一. 数据定义语句

//类型: integer整型 text文本 blob二进制 real浮点//创建表, 如果没有就创建

create table if not exists 表名 (字段名1 字段类型1, 字段名2 字段类型2, …) ;

//如果表格存在就删除表格

drop table if exists 表名 ;

二. 数据操作语句

//将Values后面跟的值插入到前面表中对应的字段

insert into 表名 (字段1, 字段2, …) values (字段1的值, 字段2的值, …) ;//更新对应字段的值

update 表名 set 字段1 = 字段1的值, 字段2 = 字段2的值, … ;//删除表中记录

delete from 表名 ;

三. 条件语句

//当 2个条件同时成立where 字段1 = 某个值 and 字段2 > 某个值 ;

//当 2个条件有1个成立where 字段1 = 某个值 or 字段2 = 某个值 ;

四. 查询语句

// 查询指定表的某写字段名的值

select 字段1, 字段2, … from 表名 ;// 查询一张表中所有的记录 * --> 代表所有字段

select * from 表名;// 查询表中记录的个数

select count ( * ) from 表名 ;// 查询表中所有的记录, 并按照某个字段排序 默认升序, 如果要降序, 添加DESC

select * from t_student order by 字段;// 用于分页查询 参数1:索引 参数2:取值的个数// 查询记录, 根据指定的索引开始查询, 查询N个

select * from 表名 limit 数值1, 数值2 ;

五. 约束

//一般来说, not null, primary key简单约束: not null, unique, default主键约束: primary key外键约束: constraint "外键名称" foreign key ("当前表要添加外键约束的字段") references "另一张表名" ("另一张表的要添加约束的字段")

// 创建一个student表, 要求id字段整型, id是主键; name文本类型不能为空并且不能重复;age是整型不能为空, 默认为1// classID整型不能为空, 给classID增加了外键约束, 外键的名称是"fk_tstudent_classID_tclass_classID"// foreign key (classId)指定了当前表的某个字段要添加外键约束// references t_class (classID)): 连接的另一张表的要添加约束的字段

create table t_student (id integer primary key, name text not null unique, age integer not null default 1, classID integer not null , constraint fk_tstudent_classID_tclass_classID foreign key (classId) references t_class (classID)) ;

六. 表连接查询(多表查询)(起别名)

// 查询学生表中名字和年龄, 来自学生表(别名s) 班级表(别名=c) 绑定学生表中class_id和班级表中id关联 并且班级表中的name为"传智23期"

select s.name,s.age from t_student s, t_class c where s.class_id = c.id and c.name = ‘传智23期’;

FMDB

github地址https://github.com/ccgus/fmdb

需配合SQ语句使用

// 导入头文件

#import "FMDB.h"

// 数据库对象 FMDatabase

// 1. 创建并打开数据库 databaseWithPath 方法

// 2. 创建表 executeUpdate 返回值bool

// 3. 增加数据 删除数据 修改数据 都调用 executeUpdate相应方法

// 4. 查询数据 调用executeQuery 相应方法 返回值FMResultSet, FMResultSet有属性next可判      断有误下一条数据使用  string调用 int/.../stringFor 方法获取数据

cordData

Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何SQL语句,这个有点类似于著名的Hibernate持久化框架,不过功能肯定是没有Hibernate强大的。简单地用下图描述下它的作用:

CoreData本质是一个ORM框架ORM Objective-Relational Mapping这个映射就是我们的模型文件,一般ORM框架都用XML格式来映射 实体Entity+属性数据库表,列

托管对象(entity) —既不是单纯的 内存对象,也不是数据库中的具体的数据,它介于这两个状态之间的,我们叫他游离态的数据

CoreData 不能执行SQL语句 取而代之,操作的是对象,FMDB SQLite 可以直接SQL语句

需要手画图!左边是关系模型,即数据库,数据库里面有张person表,person表里面有id、name、age三个字段,而且有2条记录;右边是对象模型,可以看到,有2个OC对象;利用Core Data框架,我们就可以轻松地将数据库里面的2条记录转换成2个OC对象,也可以轻松地将2个OC对象保存到数据库中,变成2条表记录,而且不用写一条SQL语句。

开发步骤总结:1.初始化NSManagedObjectModel对象,加载模型文件,读取app中的所有实体信息2.初始化NSPersistentStoreCoordinator对象,添加持久化库(这里采取SQLite数据库)3.初始化NSManagedObjectContext对象,拿到这个上下文对象操作实体,进行CRUD(创建(Create)、更新(Update)、读取(Read)和删除(Delete))操作

CoreData的4个存储方式:

SQLiteNSSQLiteStoreType

XMLNSXMLStoreType

BinaryNSBinaryStoreType

内存存储NSInMemoryStoreType

CoreData 持久化协调器 - NSPersistentStoreCoordinator

NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]

CoreData 对象映射模型 - NSManagedObjectModel

_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];

CoreData 托管对象上下文 - NSManagedObjectContext

指定队列_managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];

指定协调器[_managedObjectContext setPersistentStoreCoordinator:coordinator];

CoreDate 实体描述器 - NSEntityDescription

CoreData 托管对象 - NSManageObject

相关文章

  • iOS数据存储之文件沙盒

    资源连接: iOS数据库存储之SQL语句; iOS数据库存储之SQLite3; iOS数据存储之NSCoding;...

  • iOS数据存储之NSCoder

    资源连接: iOS数据库存储之SQL语句; iOS数据库存储之SQLite3; iOS数据存储之文件沙盒; iOS...

  • iOS数据库存储之SQLite3

    资源连接: iOS数据库存储之SQL语句; iOS数据存储之文件沙盒; iOS数据存储之NSCoding; SQL...

  • iOS数据库存储之SQL语句

    资源连接: iOS数据库存储之SQLite3; iOS数据存储之文件沙盒; iOS数据存储之NSCoding; S...

  • SQLite数据库基础(完结)

    标签(空格分隔): iOS数据库 数据库总结 SQLite数据库 ios中的数据存储方式及其特点 Preferen...

  • iOS SQLite数据库基础

    标签(空格分隔): iOS数据库 数据库总结 SQLite数据库 ios中的数据存储方式及其特点 Preferen...

  • iOS基础之数据存储

    iOS数据存储 1. 概论 在iOS开发中数据存储的方式可以归纳为两类: 存储文件 和 存储到数据库. 2.文件存...

  • iOS本地存储-数据库(FMDB)

    原文:# iOS本地存储-数据库(FMDB) iOS中原声的SQLite API在进行数据存储的时候,需要使用C语...

  • iOS Swift 本地存储相关

    FMDB数据库存储 一、简单介绍 什么是FMDBFMDB 是 iOS 平台的 SQLite 数据库框架。FMDB ...

  • iOS 沙盒机制 & 数据存储(🀎)

    iOS中,数据存储有四种方式:plist存储、偏好设置、NSCoding归档、数据库其中,前三种存储在iPhone...

网友评论

      本文标题:iOS数据库存储

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