码迷,mamicode.com
首页 > 移动开发 > 详细

SQLite3及iOS本地化存储

时间:2015-10-30 07:06:22      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:

(一)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;

  

 

SQLite3及iOS本地化存储

标签:

原文地址:http://www.cnblogs.com/aixiaoxin/p/4922294.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!