SQLite3及iOS本地化存储

(一)SQLite3:

  (1)定义:是一款轻量级的,嵌入式的数据库。是一个进程内的库,本质就是一个文件,不需要依赖外部,不需要服务器,不需要安装或者管理,就是一个单一的磁盘文件。而服务端的数据库往往都很大,例如Orcal,MySql,SQL Server,这些需要独立的服务器,安装配置并且需要大量人员的维护。

  (2)数据类型:五个数据类型,integer整数,real小数,text字符串,blob二进制数据(把一段图片,音频,视频塞进去,一般不塞,数据库是查询检索的,而不是保存的,没法检索,一般值存路径),NULL。

  (3)主键:主键:唯一标示一条记录,一般是整数,一般是自动增长的。每一个表存储相同类型的数据。例如一个Dog对象,每一行都是一个对象,每一列都是对象的某一个属性。例如age,name等等。

  (4)存的时候服务器会有一个排它锁。因为有可能会多个同时存储。为了唯一区分id,服务器就自己锁住下一条记录。并且id主键是唯一标示,是由数据库自动生成的。及其偶尔的情况下,主键可以采用其他方式。

  (5)所以说,SQL3就是存储数据的,一个表可以是一个对象,不同表之间还可以(一般必然)有关系。iOS开发一般是需要了解数据库代码写法的,如上只是Navicat自动生成的一个table,如果写成数据库代码,是这样的。

-- 创建数据表
CREATE TABLE IF NOT EXISTS "T_Person" ( // 创建一个表 如果不存在
     "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,  // id integer类型 不为空 主键 自动增长
     "name" TEXT, // 名字 text类型
     "age" INTEGER, // 年龄 integer类型
     "height" REAL // 身高 real类型
)

  (6)数据修改: 上面已经创建了一个T_Person表,并且有四个属性,那么现在可以插入数据了。

  6.1增:

INSERT INTO T_Person(name,age,heigth) VALUES (‘shy‘,24,1.7) // 插入一条数据数据到T_Person表

  SQL的字段属性其实只是给程序员看的,其实存什么都行。并没有做校验,你给一个int存字符串都没事-。-!但是事实证明,SQL3在移动端嵌入开发是唯一首选的。插入一万条数据也需要0.几秒就行,速度非常快性能非常好。

INSERT INTO T_Person (name,age,height) VALUES (‘shy‘,‘24‘,‘shy‘) // 插入一个错误数据类型,数据库表不受任何影响

  6.2改:更新数据时候一定要设置条件,因为SQL是没法command+Z返回的,数据改了就无法改变。

UPDATE T_Person SET name = ‘aixin‘, age = 100, height = 88
WHERE id = 2

  此时数据就改了

  6.3删:删除数据也要注意设置条件,要不然整个表就没了。。。你就被开除了。

DELETE FROM T_Person
WHERE id = 1;

  注意: ‘;’分号是表示一个完整事件的结束,可以加也可以不加(改没加,删加了),但是加上才是比较正规的SQL语句。如果删除条件不满足,那么什么也不会发生。

  删除整个表:

DROP TABLE T_Person;

  6.4查:

SELECT * FROM T_Person;  // 查询整个表所有信息,开发一般不用,调试用,因为无法控制选什么

SELECT name,age FROM T_Person; // 查询具体某些属性

SELECT count(*) FROM T_Person; // 查询有多少个

SELECT count(*) FROM T_Person WHERE age<26; // 条件选择查询多少个 

SELECT name,age,height FROM T_Person WHERE age<26; // 条件展示具体属性
SELECT max(age) FROM T_Person; // 查询最大年龄

SELECT min(age) FROM T_Person; // 查询最小年龄

SELECT id,name,age FROM T_Person // 查询3条
LIMIT 3;

SELECT id,name,age FROM T_Person // 从..位置查询..条
LIMIT 3,3;

SELECT id,name,age FROM T_Person // 从id.. 位置查询..条
WHERE id > 5
LIMIT 2;
SELECT id,name,age FROM T_Person // 按照名字排序,默认a升序
ORDER BY name;

SELECT id,name,age FROM T_Person // DESC是降序,如果名字一样,按照第二要求age进行升序排序
ORDER BY name DESC,age ASC;

  

时间: 2024-10-27 13:43:40

SQLite3及iOS本地化存储的相关文章

IOS开发中关于数据的本地化存储

对于IOS开发者而言, 项目中数据的本地化存储,最难的一点,莫过于SQL语句的编写,除此之外, 其实也没什么难度, 当然在创建数据库之前,我们必须要做的是对数据进行分析, 然后对FMDB进行简单的封装: 代码如下: #import "SQLiteManger.h" #import "FMDB.h" @interface SQLiteManger () @end @implementation SQLiteManger /// 创建一个单例单例 +(instancet

iOS数据存储之SqLite3

iOS中数据存储的方式有很多中,当数据量较大的时候偏好设置,归档和plist就无法满足需求了 这时候就需要用SqLite或者CoreData来存储数据 下面就来介绍一下如何使用SqLite存储数据 要使用Sqlite必须引入libSqlite3.dylib库 要使用首先要有一个handle句柄(handle句柄,在C语言中,通常把用于控制某类东西的叫做句柄,实际上是一个指针.) // 数据库句柄 sqlite3 *_db; SqLite存储数据时也是存在一个文件中的,只不过这个文件格式是定制的,

iOS数据存储的几种方式

iOS的数据存储是iOS应用开发的重要知识点: 关于这方面知识,网上有很多介绍,但对于代码层次的使用方式并未有系统全面介绍.此文章针对iOS稍熟悉的童鞋,需要对CoreData的原理有一定的了解.目前存储方式大概有以下几种: NSKeyedArchiver  适用简单数据加密 NSUserDefaults  适用配置参数 Write  文件操作,同NSKeyedArchiver SQLite3  操作较复杂,不建议使用. CoreData  取代SQLite3,但要遵循NSManagedObje

IOS数据存储 —— 2 存储方式

IOS数据存储方式 iOS开发常用数据存储方式有:plist.偏好设置 NSUserDefaults.对象归档 NSKeyedArchiver.SQLite3和Core Data 1. plist文件 存储 plist文件通常用于储存用户设置,利用xml属性列表归档NSDictionary.NSArray.NSNumber等类型数据 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用 注意:plist不能存储自定义对象 2. 偏好设置 NSUserDefaults 偏好设置

iOS 数据存储 - 01基本介绍

1.应用沙盒 sandbox 1. 什么是沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是应用的文件夹),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒. 2.应用沙盒结构 应用程序包: 包含了所有的 资源文件和 可执行文件 Documents: 保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如,游戏应用可将游戏存档保存在该目录.保存相对重要的数据 tmp: 保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除.应用没有运行时

Android本地化存储Cookie(针对HttpClient)

因为最近有人问我怎么保存HttpClient的Cookie, 所以这里写下, 顺便记录总结吧. 当然, 有Android网络编程经历的童鞋一看就懂喇~ 就不多说了, 直接上代码: /** * 本地存储Cookie * @param response */ private void saveCookies(HttpResponse response) { SharedPreferences preferences = getSharedPreferences("cookies", MOD

iOS数据存储之CoreData

iOS中大量数据的储存一个是SqLite,另一个就是CoreData,CoreData允许程序员以面向对象的思维方式的方法去操作面向表的数据库 做过Java开发的对这个应该很熟悉,Java中的Hibernate跟CoreData就很相似 CoreData应该怎样使用呢? 第一步,新建工程后导入CoreData框架 第二部,创建CoreData的数据模型创建步骤如下 然后给你的model起个名字,创建完成后你会看到一个这个文件(相当于数据库文件) 点击这个文件,然后看下图 点击图中1,新建实体(类

IOS本地化应用程序

BK项目已经完成得七七八八了,在项目的后期需要将其翻译成多国语言版本,以适应全球多个国家多个店面的使用. 应用本地化是分别对字符串.图片和 xib 或 storyboard 文件本地化,而传统的做法是对 xib 上的字符串(包括UILabel和UIButton.UITextField等)关联一个变量,通过NSLocalizedString这个函数去查找 Localizeable .strings 文件中的key值进行本地化操作,或者是生成同一个xib文件的不同语言版本,如 MainVC.xib(

iOS数据存储类型 及 堆(heap)和栈(stack)

iOS数据存储类型 及 堆(heap)和栈(stack) 一般认为在c中分为这几个存储区: 1栈 --  由编译器自动分配释放. 2堆 --  一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收. 3全局区(静态存储区)-- 全局变量和静态变量的存储是放在一块区域 ,程序退出后自动释放 .全局区又分为全局初始化区和全局未初始化区.初始化的全局变量和静态变量存放在全局初始化区,未初始化的全局变量和未初始化的静态变量存放在相邻的另一块区域. 4常量区-- 专门放数字/字符常量的地方, 程