2015ztlucky

导航

数据存储的几种方式

---恢复内容开始---

iOS有四种数据持久化的方式

1.属性列表(plist文件)

2.对象归档(NSKeyedArchiver , NSKeyedUnarchiver)

//3.偏好设置(NSUserDefault)

4.SQLite 数据库

5.CoreData

持久化方式的比较:

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

2.SQLite CoreData 适合大数据量的存储和查询操作

一、SQLite的使用

1.简要说明: SQlite 是一个开源的、内嵌式的关系型数据库。它是最初发布于2000年,在便携性、易用性、紧凑型、有效性和可靠性方面有很大的突破;

2.SQLite数据库结构简单 ,适用于嵌入式 小型应用

二、SQL语句

数据定义语句(DDL :Data Definition Language)

  其语句包括动词Creat(创建表)Drop (删除表)

数据操作语言(DML:Data Manipulation language)

其语句包括 Insert(插入行)、update(修改行)、delete (删除)

数据查询语句 (DQL : Data Query language)

其语句包括 select 用于查询数据

详细说明:

表的创建: 

creat table 表名 (字段名1 字段类型1,字段名2 字段类型2....);

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

 实例: creat table t_student (id integer, name text,age integer);

删表

drop table 表名;

例: drop table t_person

SQLite 将数据的存储划分为以下几种存储类型:

1.NULL :表示该值为NULL值

2.INTEGER:无符号

 3.REAL :浮点值

4.TEXT :文本字符串

5.BOOL :二进制数据

简单约束

建表的时候可以给特定的字段设置一些约束条件 :

1.  用not null 指定字段的值不能为空

2.用unique 指定字段的值必须唯一

3.用default 指定字段的默认值

实例: creat table t_student(id integer,name text not null unique,age integer not null  default 1)

 表示: name 字段的值不能为空  ,并且唯一

age 字段:的值为null ,并且默认值是1;

    DML 语句

插入数据(insert  into)

 1.语法: insert into 表名 (字段一,字段二,。。。。。)values(值一,值二,。。。。。。)

2.举例: insert into t_tudent(name,age)values(“peter”,“20”);

3.注意:数据库的字符串的内容应该用单引号或是双引号

更新数据(update)

1.语法: update 表名 set 字段1 = 字段1 的值 ,字段2 = 字段2的值;

2.举例: update t_student set name = “peter”,age = 12;

3.注意:这里会将t_student中的所有记录的名字全部改成peter ,年龄全部改成12;

删除数据(delete)

1.语法 :delete from 表名

2.举例: delete from t_student 

3.注意:这里会将t_student表中的记录都删掉

       条件语句

如果只想更新或者删除某些固定的记录,那就必须在DML语句后面加上一些条件限制

条件语句的格式如下:

1.where 字段 =  某个值 and 字段 >某个值 //and 相当于&&

2.where 字段 = 某个值 or 字段 = 某个值 //or 相当于 ||

条件举例:

1.将年龄大于10并且姓名不等于jack的记录年龄都改为5;

update t_student age = 5 where age >10 and name != "jack";

2.删除年龄小于等于 10 或年龄大于30 的记录

delete from t_student where age <=10 or age>=30;

DQL语句 (查询语句)

1.查询格式:

select 字段一,字段二,from 表名;

select name,age,from t_student;

2.如果想查询所有字段可以用:

select *from 表名;

select *from t_student;

3.也可以添加设置条件语句

select * from t_student where age>20;

4.计算记录的数量 可以用count(字段)或者count(*)

select count(*)from t _student;

select count (age)from t_student where height <1.80;

5.排序语法:

1. 查询出来的结果用order by 进行排序

select *from t_student order by 字段;

例:select *from t_student order by age;

2.  默认情况下是按照升序进行排序的 (由小到大)

实例; select *from t_student order by age desc;//降序、

  select *from t_student order by age asc;//升序(默认的)

限制查询数量:

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

select *from t_student limit 4,8;

以上语法; 跳过前面的四条语句,然后取出8条记录

主键约束: (primary key)

保证每条记录的唯一性:

主键是唯一的标识某一条记录的,可以是一个字段或是多个字段,比如t_student 可以增加一个id字段来作为主键,相当于人的身份证;

注意: 主键的设计原则;

1.主键应当是对用户没有用意义的

2.永远不能更新主键;

3.主键不能包含动态变化的数据

4.主键应该有计算机自动生成

 

posted on 2016-01-25 21:14  2015ztlucky  阅读(725)  评论(0编辑  收藏  举报