26.SQLite
来源:互联网 发布:linux查看端口号命令 编辑:程序博客网 时间:2024/04/30 00:50
- SQLitejiu's就是用来做数据存储
- iOS开发的作用就是用来做离线缓存当没有网络还能加载看过的内容iOS里面做离线缓存最好的就是 SQLite
- 沙盒里弊端 不能操作大量的数据 不方便查询
- 沙盒的路径
- Document:存放比较重要的数据并且在 itunes中自动备份
- library:
- tmp随时可能被删掉
- 数据库的本质是一个文件
- 创建数据库文件 创建表 确定表头(字段名) 添加每一行信息 (记录)
- MySQL :中小型数据库最多存放百万条数据库免费的
- SQLite数据库后缀名一般以. sqlite或者. db
- 用工具创建数据库
- 创建数据库
- 双击就是打开数据库 右键就可以关闭
- 表名规范以t_表的名称命名v_视图的名称时候段应用的
- SQL语句
- 前台和后台的 sql语句的百分之90是相似的
- createtableifnotexistst_name(名字,类型);
- 高级查询 重要
- 排序
- 综合查询
- 主键
- 外键
- 要导入类库,libsqlite3.0导入这个 编译一下
- SQLite原生是c 语言的 创建东西用函数
- 导入头文件并且所有函数 都已 sqlite3开头
- int result =sqlite3_open(创建出来的数据库保存到沙盒里的哪个路径下 +文件名,数据库的实例);
- 判断是否创建成功
- query
cache 存储空间不足就会删除
preference偏好设置
Unix系统里面存放的东西也是文件
行相当于一个对象
Oracle :亿级,兆级
SQLServer百万级到千万级
blob浮点integer整形real浮点型text字符串
DDL:数据定义语句
创建表删除表
DML:数据操作语句
新增修改删除
DQL :查询语句
条件语句
删除 droptablet_productInfo;
新增数据插入 insertinto t_productInfo(productId, productName, productPrice) values (--, -- , --);
更改表内容 updatet_productInfo set productPrice = 1.5whereproductName = '茶叶蛋';(修改特定某一条要加上条件)
删除表数据 deletefromt_productInfowhereproductPrice > 3;
查询 select *from t_productInfo; (*代表查询出所有的列名代表通配符)
select productName ,productPrice fromt_productInfo;
select productId ,productName fromproductPrice > 50;
select *from t_productInfo where productPrice < 100 and productId < 10010;(多个条件用 and 分割)
统计有多少条记录 selectcount (*)fromt_productInfo 查询出来的列叫做 count(*)
selectcount (*) zongshu fromt_productInfo 这样查询出来的列名就叫做 zongshu 别名不能用 count因为他是关键字 列名和表明都可以起别名
select pi.productName name fromt_productInfopi;
模糊查询
ios中比如在淘宝中输入 iphone
select *fromt_productInfowhere productNamelike '%虾%'; (%标示通配符如果虾% 所有以虾开头的 %虾 所有以下结尾的 %虾%所有包含虾的)
分页查询
ios 中比如上拉下拉刷新
select *from t_productInfolimit 0,5; (第一个数组标示从索引第几个开始查询,第二个标示一次查询多少条)
select *fromt_productInfoorderbyproductPrice; (关键字orderby默认从低到高)
select *fromt_productInfoorderbyproductPricedesc;(降序)
select *fromt_productInfowhereproductPrice < 100 orderbyproductPricedesc limit 0,2;
用来添加唯一标识符 在开发中没有主键也是可以的 但是为了规范一般最好加上主键 一般主键自动增长不用我们管
create tableifnoteistst_person (idinteger primarykey,nametext,ageinteger);
外键一般关联到另外一张表的主键 建立关系
CREATE TABLE "t_primikaka" (
"name" text NOT NULL,
"age" integer,
"id" integer,
PRIMARY KEY("name"),
CONSTRAINT "fk_lala" FOREIGN KEY ("id") REFERENCES "worker" ("id")
)
C语言中的全局成员变量在@ interface 下直接{}
除了字符串其他的 oc类型都可以用桥接 字符串直接. UTF8String就可以了
每个类在整个应用程序执行期间,只会调用一次,所以把置顶一次的放入里边
+ (void)initialize{};
在.m文件里边如果定义全局变量在前面加了 static就是防止外部访问更加安全
if(result == SQLITE_OK){
创建表 ,增删改都用一个函数 sqlite3_exec
数据库实例/创建表的 SQL语句/回调如果你完成之后不需要可以传 NULL /回调的参数参数3没写的话传 NULL /错误信息
sqlite3_exec (_db, , , , )
查询sqlite3_prepare_v2这个函数
}
参数1:数据库实例 参数2查询 sql语句 参数3查询 sql语句的长度一般穿入-1让系统算
参数4查询出来的集合在查询语句中查询出来的集合叫做结果集
参数5尾巴一般出入 null
int result = sqlite3_prepare_v2(_db, querySQL.UTF8String, -1, &stmt, NULL);
if(result == SQLITE_OK){不管查询多少条
while(sqlite3_step(stmt) == SQLITE_ROW);
constunsigned char * cname = sqlite3_column_text(stmt,1);
int age = sqlite3_column_int(stmt, 2);
}
- 26.SQLite
- SQLite
- SQLite
- SQLite
- SQLite
- SQLite
- sqlite
- sqlite
- SQLite
- SQLite
- sqlite
- SQLite
- SQLite
- SQLite
- SQLite
- SQLite
- sqlite
- sqlite
- VMware 未能初始化监视器
- 25. 其他知识点
- java代码块(初始化块)
- 【数据挖掘】数据挖掘简介
- 从小事做起,规划你的程序人生
- 26.SQLite
- MySQL5.5源码包安装 for Red Hat Enterprise Linux 6
- 27.swift基础
- ios视图frame和bounds的对比
- 致10年前自己的一封信,谁与我同行
- 28.swift高级
- centos直接yum安装nginx
- pair 函数 (STL)
- RabbitMQ监控(3)——核心监控类实现