详见 iOS开发 文件存储方式
Core Date:Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何SQL语句。由于功能太过强大,所以带来的性能损耗也比较大,在此先不介绍Core Data的处理方式,有关Core Data与SQLite 的选择,详见谈谈用 SQLite 和 FMDB 而不用 Core Data。
SQLite:
什么是SQLite
什么是数据库
常用关系数据库
数据库是如何存储数据的 : 数据库的存储结构和Excel很像,以表(table)为单位.
数据库存储数据的步骤
1.SQL语句的特点:
不区分大小写
每条语句必须以分号结尾
2.SQL中的常用关键词
3.数据库中不可以使用关键字来命名表、字段
数据定义语句 (DDL:Data Definition Language)
数据操作语句(DML:Data Manipulation Language)
数据查询语句(DQL:Data Query Language)
创表
格式(一般表名以t_作为前缀)
字段类型
示例
create table t_student (id integer, name text, age inetger, score real) ;
删表
格式
示例
插入数据(insert)
格式 : 数据库中的字符串内容应该用单引号 ’ 括住
示例
insert into t_student (name, age) values ('kingsly', 20) ;
更新数据(update)
示例
update t_student set name = ‘Roger’, age = 34 ;
删除数据 (delete)
示例
delete from t_student;
格式
select 字段1,字段2,...from 表名;
select * from 表名; // 查询所有字段
示例
select name,age frome t_student; select * frome t_student;
重命名字段名
格式
示例
给name起个叫做myname的别名,给age起个叫做myage的别名
select name myname, age myage from t_student ;
给t_student表起个别名叫做s,利用s来引用表中的字段
select s.name, s.age from t_student s ;
条件语句常见的格式
示例
将t_student表中年龄大于10 并且 姓名不等于jack的记录,年龄都改为 5
update t_student set age = 5 where age > 10 and name != ‘jack’ ;
select * from t_student order by age ;
默认是按照升序排序(由小到大),也可以变为降序(由大到小)
select * from t_student order by age desc ; //降序 select * from t_student order by age desc ; //降序
也可以用多个字段进行排序
先按照年龄排序(升序),年龄相等就按照身高排序(降序)
select * from t_student order by age asc, height desc ;
使用limit可以精确地控制查询结果的数量
格式
示例
select * from t_student limit 5, 10 ;
示例
name字段不能为null,并且唯一,age字段不能为null,并且默认为1
create table t_student (id integer, name text not null unique, age integer not null default 1) ;
主键
Primary Key ,用来唯一地标识某一条记录
t_student 表中,若没有设置一个字段为主键,则难免会出现几个记录中name和age完全相等的情况,因此需要一个标识来区分,比如人的身份证id,来区分同名和相同年龄的人
主键可以是一个或者多个字段
主键应当不影响用户记录的数据,最好是由电脑自动生成主键
主键的声明
在创表的时候用primary key声明一个主键,eg:用一个integer类型的id字段作为t_student表的主键
create table t_student (id integer primary key, name text, age integer) ;
主键字段默认就包含了not null 和 unique 两个约束
让integer类型的主键自动增长,需要添加 autoincrement,一般情况下让主键自动增加便于管理
create table t_student (id integer primary key autoincrement, name text, age integer) ;
外键约束
学生表的班级字段,来自班级表中的id字段
create table t_student (id integer primary key autoincrement, name text, age integer, class_id integer, constraint fk_t_student_class_id_t_class_id foreign key (class_id) (id)) ; references t_class
表连接查询
表连接的类型
内连接:inner join 或者 join (显示的是左右表都有完整字段值的记录)
左外连接:left outer join (保证左表数据的完整性)
示例:查询网络工程2班的所有学生
select s.name,s.age from t_student s, t_class c where s.class_id = c.id and c.
新闻热点
疑难解答