一. 数据存储类型:
1. plist (NSArray, NSDictionary);
2. Preference(偏好设置NSUserDefault);
3. NSCoding (NSKeyedArchiverNSKeyUnarchiver); ---- 存储小数据, 读取不是很方便
4. SQLite3数据库--- c 语言, 轻量级
5. CoreData --- 基于SQLite3, OC版本, 庞大
二. SQLite
1. 术语:
- table (表)
- Column(字段 列)
- row ecord(行 记录)
2. 数据库存储数据的步骤
- 新建表(table)
- 添加字段(column)列, 属性
- 添加记录(row, record)行, 数据
3. 工具
- Navicat
4. 数据类型
- integer -- 字符串
- real --- 浮点
- text --- 字符串
- blob --- 二进制
[注意]: 为了规范, 最好指定 数据类型 (实际上, 数据库是没有数据类型的)
5. 语句种类
- 数据定义语句 (DDL - Data Definition Language)
- 包括: create 和 drop 等操作
- 数据操作语句 (DML - Data Manipulation Language)
- 包括: insert update delete --
insert into t_shop(name, price, left_count) values ('iphone999', '9391.000000', '655');
- 数据查询语句 (DQL - Data Query Language)
- 包括: select
* SQL 语句
*
* SQL语言(structure query language) --- 结构化查询语言 (对结构化数据库中的数据, 进行定义和操作)
1. 不区分大小写
2. 以分号结尾
3. 有关键字
1. 语句种类
数据定义语句 (DDL - Data Definition Language)
包括: create 和 drop 等操作
数据操作语句 (DML - Data Manipulation Language)
包括: insert update delete
数据查询语句 (DQL - Data Query Language)
包括: select
2. 条件语句
CREATE TABLE IF NOT EXISTS t_myfriend (id integer PRIMARY KEY, name text, age integer); // 主键
UPDATE t_shop SET left_count = 0 WHERE price < 1000;
SELECT * FROM t_shop WHERE left_count > 800;
DELETE FROM t_shop WHERE left_count < 500 AND price < 1000;
SELECT t.name From t_shop t; // 别名
SELECT count(*) 剩余数量 from t_shop WHERE left_count > 800;
SELECT * from t_shop ORDER BY left_count DESC; // 排序 ASC
SELECT * from t_shop ORDER BY left_count DESC, price ASC;
SELECT * from t_shop LIMIT 4, 8; // 跳过前面的4条, 取8条数据 --- 后面的8, 可用作分页使用
SELECT * FROM t_shop ORDER BY price DESC LIMIT 10, 10; // 取价格最高的10条
// not null ----非空 约束
// unique --- 唯一
// default -- 默认
条件语句的常见格式
where 字段 = 某个值 ; // 不能用两个 =
where 字段 is 某个值 ; // is 相当于 =
where 字段 != 某个值 ;
where 字段 is not 某个值 ; // is not 相当于 !=
where 字段 > 某个值 ;
where 字段1 = 某个值 and 字段2 > 某个值 ; // and相当于C语言中的 &&
where 字段1 = 某个值 or 字段2 = 某个值 ; // or 相当于C语言中的 ||
DELETE FROM t_shop WHERE left_count = 0;
DELETE FROM t_shop WHERE left_count = 0;
DELETE FROM t_shop WHERE left_count < 500 OR price < 2000;