SQLite学习笔记(1)

前端之家收集整理的这篇文章主要介绍了SQLite学习笔记(1)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

sqlite介绍:@H_404_3@

sqlite是一个开源的嵌入式关系数据库,它在2000年由D. Richard Hipp发布,它的减少应用程序管理数据的开销,sqlite可移植性好,很容易使用,很小,高效而且可靠。
sqlite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它却是完整的,自包含的数据库引擎。嵌入式数据库在你的程序内部不需要网络配置,也不需要管理。因为客户端和服务器在同一进程空间运行。sqlite 的数据库权限只依赖于文件系统,没有用户帐户的概念。sqlite 有数据库级锁定,没有网络服务器。它需要的内存,其它开销很小,适合用于嵌入式设备,你需要做的仅仅是把它正确的编译到你的程序。@H_404_3@

@H_404_3@

特点(sqlite’s Features and Philosophy):
零配置(Zero Configuration)、可移植(Portability):
@H_404_3@

sqlite的本地类型:INTEGER、 REAL、TEXT、 BLOB、NULL。@H_404_3@

基本语法:创、增、删、查、改。@H_404_3@

sqlite支持除了devide之外的关系运算符;@H_404_3@

支持除了right和full outer join之外的ASCI sql;@H_404_3@

注意SELECT时,limit 和 offset的用法。@H_404_3@

注意多表连接(字段可能重名)。@H_404_3@

数据完整性:用户定义完整性、参照完整性、域完整性、实体完整性。@H_404_3@

注意类型亲和性。@H_404_3@

事物的三个控制命令:BEGIN、 ROLLBACK、COMMIT;事物的种类:DEFERRED、IMMDIAET、EXCLUSIVE。@H_404_3@

五种冲突解决方案:REPLACE、IGNORE、FAIL、ABORT、ROLLBACK。@H_404_3@

五种锁状态:未锁、共享、保留、未决、排他。@H_404_3@

sqlite的数据库清洁:REINDEX、VACUUM。@H_404_3@

查看query的执行:explain select * from test_name ;@H_404_3@

事物的生命周期:@H_404_3@

任何情况下,只在一个事物中执行一个连接;@H_404_3@

pager管理事物、锁、内存缓冲和负责崩溃恢复。@H_404_3@

事物可自动提交,也可以通过begin、commit手动提交。@H_404_3@

关于上图:事务通常是从unlocked、reserved、exclusive三种状态下开始,默认unlocked;白色条框的状态可在同一时刻状态下存在。事务的根本是读和写。@H_404_3@

日志是数据库恢复的唯一方法。@H_404_3@

注意临时表的正确应用。@H_404_3@

HOOK()函数数据库连接中的insert、delete、update操作都有监视功能。@H_404_3@

@H_404_3@

(1)虚拟数据库引擎(VBDE),包含:VBDE程序、程序计数器、结果字段的名称和类型、 参数的绑定值、 运行栈和固定数量的编号的内在单元。VBDE虚拟机的的每条指令都由128个中的某一个操作码 和 三个操作数构成。C api 可和VBDE 直接交互。@H_404_3@

要得到sql的VBDE程序,可做入下操作;@H_404_3@

.mode column@H_404_3@

.header on@H_404_3@

.width x x x x x x ……@H_404_3@

.explain select * from testname;@H_404_3@

@H_404_3@

B*TREE记录:包含两个域,关键字域和数据域。B*tree(任务 是排序和遍历)的页由B*tree记录组成。@H_404_3@

次数据组织模型:从下而上数据结构化加强,从上而下数据无序性增加。C API ------VBED------B-tree------Pager-------OS Interface------database file。@H_404_3@

B* tree API 的分类;访问和事务函数、表函数、游标函数、记录函数、@H_404_3@

(二)编译器:输入为单独的sql命令,输出是优化的VBDE程序。分别在分词器、分析器、代码生成器上完成。@H_404_3@

(三)分词器@H_404_3@

(四) 分析器;@H_404_3@

(五)代码生成器;无明确定义的接口,负责生成代码查询优化。@H_404_3@ 原文链接:https://www.f2er.com/sqlite/201851.html

猜你在找的Sqlite相关文章