iOS开发-数据存储SQLite介绍

iOS中多少存储

1.支出中、常见的数额存储有瞬间几乎种植
● Plist(NSArray\NSDictionary)
● Preference(偏好设置\NSUserDefaults)
● NSCoding(NSKeyedArchiver\NSkeyedUnarchiver)
● SQLite3
● Core Data
● Key Chain

2.什么是SQLite
● SQLite是平等悠悠轻型的嵌入式数据库
● 它占用资源大之低,在嵌入式设备遭遇,可能就需要几百K的内存就够用了
● 它的处理速度比Mysql、PostgreSQL这简单缓名牌的数据库都还赶忙

3.哟是数据库
● 数据库(Database)是遵循数据结构来集团、存储和管理数据的库房
● 数据库可分也2深品种 • 关系项目数据库(主流)
• 对象型数据库

4.数据库是怎么样存储数据的
● 数据库的储存结构与excel很像,以说明(table)为单位

  1. 数据库存储数据的手续
    ● 新建数据库文件
    ● 新建一张表(table)
    ● 添加多独字段(column,列,属性)
    ● 添加多尽记录(row,每行存放多只字段对应之值)

SQL语句

1.什么是SQL
● SQL(structured query language):结构化查询语言
● SQL是一模一样种对干项目数据库中之多寡进行定义和操作的言语
● SQL语言凝练,语法简单,好学好用

2.什么是SQL语句
● 使用SQL语言编写出来的语句\代码,就是SQL语句
● 在程序运行过程被,要想操作(增删改查,CRUD)数据库被的多寡,必须要
用SQL语句

3.SQL告句的特点
● 不分轻重缓急写(比如数据库认为user和UsEr是一模一样的)
● 每条告句都要为分行 ; 结尾

4.SQL遭到之常用关键字有

select、insert、update、delete、from、create、where、desc、order、by、group、
table、alter、view、index等等
● 数据库中莫得以采取要字来命名表、字段

5.SQL告诉句子之类型
● 数据定义语句(DDL:Data Definition Language)
● 包括create和drop等操作
● 在数据库中开创新表或删除表(create table或 drop table)

● 数据操作语句子(DML:Data Manipulation Language)
● 包括insert、update、delete等操作
● 上面的3种操作分别用于添加、修改、删除表中的数量

● 数据查询语句(DQL:Data Query Language)
● 可以用来查询得到表中的数码
● 关键字select是DQL(也是有所SQL)用得极其多的操作
● 其他DQL常因此之基本点字有where,order by,group by以及having

SQL语句示例

1.字段类型
● SQLite将数据划分为以下几栽存储类型:
● integer : 整型值
● real : 浮点值
● text : 文本字符串
● blob : 二向前制数据(比如文件)
● 实际上SQLite是无类型的
● 就到底声明也integer类型,还是会储存字符串文本(主键除外)
● 建表时声明啥类型或者未声明类型且可,也即代表创表语句可以这么形容:
• create table t_student(name, age);
● 为了保持良好的编程规范、方便程序员之间的交流,编写建表语句的上最好好
加上每个字段的实际项目

2.创表
● 格式
● create table 表名 (字段名1 字段类型1, 字段名2 字段类型2, …) ;
● create table if not exists 表名 (字段名1 字段类型1, 字段名2 字段类型2,
…) ;
● 示例
● create table t_student (id integer, name text, age inetger, score
real) ;

3.删表
● 格式
● drop table 表名 ;
● drop table if exists 表名 ;
● 示例
● drop table t_student ;

4.栽入数据(insert)
● 格式
● insert into 表名 (字段1, 字段2, …) values (字段1的值, 字段2的值,
…) ;
● 示例
● insert into t_student (name, age) values (‘lnj’, 10) ;
● 注意
● 数据库中之字符串内容应当为此单引号 ’ 括住

5.创新数据(update)
● 格式
● update 表名 set 字段1 = 字段1的值, 字段2 = 字段2的值, … ;
● 示例
● update t_student set name = ‘jack’, age = 20 ;
● 注意
● 上面的示例会将t_student表中兼有记录之name都更改也jack,age都改变吗20

6.抹数据(delete)
● 格式
● delete from 表名 ;
● 示例
● delete from t_student ;
● 注意
● 上面的示例会将t_student表中所有记录都删掉

7.尺码语句
● 如果单单想翻新或者去除某些固定的笔录,那就是务须于DML语句后增长有漫漫 件
● 条件语句的常见格式
● where字段=某个值; //不能用单薄独=
● where字段is某个值; //is相当于=
● where 字段 != 某个值 ;
● where字段isnot某个值; //isnot相当于!=
● where字段>某个值;
● where 字段1 = 某个值 and 字段2 > 某个值 ; // and相当给C语言中之
&&
● where字段1=之一值or字段2=某值; // or相当给C语言中的||

8.DQL语句
● 格式
● select 字段1, 字段2, … from 表名 ;
● select * from 表名; // 查询所有的字段
● 示例
● select name, age from t_student ;
● select * from t_student ;
● select * from t_student where age > 10 ; // 条件查询

SQL其他作用

1.起别名
● 格式(字段和表都可以由别名)
● select字段1别叫做,字段2别叫作,…from表名别名;
● select字段1别名,字段2as别名,…from表名as别名;
● select 别名.字段1, 别名.字段2, … from 表名 别名 ;
● 示例
● select name myname, age myage from t_student ;
• 给name起个叫做myname的别名,给age起个叫myage的号
● select s.name, s.age from t_student s ;
• 给t_student表起分别名叫做s,利用s来引用表中的字段

2.乘除记录的数额
● 格式
● select count (字段) from 表名 ;
● selectcount(*)from表名;
● 示例
● select count (age) from t_student ;
● select count ( * ) from t_student where score >= 60;

3.排序
● 查询出来的结果可以为此order by进行排序
● select * from t_student order by 字段 ;
• select * from t_student order by age ;
● 默认是按照升序排序(由小到大),也足以改为降序(由坏到有些)
● select * from t_student order by age desc ; //降序
● select * from t_student order by age asc ; // 升序(默认)
● 也堪为此多独字段展开排序
● select * from t_student order by age asc, height desc ;
• 先按照年龄排序(升序),年龄等就按身高排序(降序)

4.imit限查询结果数量
● 使用limit可以准确地控制查询结果的数,比如每次仅询问10长数
● 格式
● select * from 表名 limit 数值1, 数值2 ;
● 示例
● select * from t_student limit 4, 8 ;
• 可以领略也:跳了最前方4漫漫语句,然后取8修记下

5.limit分页
● limit常因此来做分页查询,比如每页固定显示5长达数,那么应该这么取多少
● 第1页:limit 0, 5
● 第2页:limit 5, 5
● 第3页:limit 10, 5
●…
● 第n页:limit 5*(n-1), 5
● 猜猜下面告诉句的来意
● select * from t_student limit 7 ;
• 相当于select * from t_student limit 0, 7 ;
• 表示收获最好前面的7漫长记下

6.简便约束
● 建表时可以给一定的字段设置有些约原则,常见的束缚有
● not null :规定字段的价值未能够啊null
● unique :规定字段的价必须唯一
● default :指定字段的默认值
(建议:尽量为字段设定严格的格,以保证数据的规范性)
● 示例
● create table t_student (id integer, name text not null unique, age
integer not null
default 1) ;
• name字段不能够也null,并且唯一
• age字段不可知啊null,并且默认为1

7.主键约束
● 如果t_student表中即name和age两只字段,而且有些记录的name和age字段的值
都同样不时,那么就没学分别这些数量,造成数据库的笔录不唯,这样就算无方
便管理数据
● 良好的数据库编程规范应当使保证各级条记下的唯一性,为这个,增加了主键约束
● 也就是说,每张表都要产生一个主键,用来标识记录之唯一性
● 什么是主键
● 主键(Primary Key,简称PK)用来唯一地标识某一样长长的记下C语言
● 例如t_student可以长一个id字段作为主键,相当给人口之身份证
● 主键可以是一个字段或多只字段

主键的计划标准
● 主键应当是对准用户没有意义的 ● 永远为绝不更新主键
● 主键不应允包含动态变化的数据 ● 主键应当由微机自动生成

8.主键的宣示
● 在创表的上用primary key声明一个主键
● create table t_student (id integer primary key, name text, age
integer) ;
● integer类型的id作为t_student表的主键
● 主键字段
● 只要声明也primary key,就证明是一个主键字段
● 主键字段默认就包含了not null 和 unique 两独框
● 如果想如果被主键自动增长(必须是integer类型),应该长autoincrement
● create table t_student (id integer primary key autoincrement, name
text, age integer)