---恢复内容开始---
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.主键应该有计算机自动生成