SQLite源程序分析之sqlite3.c】的更多相关文章

/****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite ** version 3.14.1. By combining all the individual C code files into this ** single large file…
1.SQL访问数据库非常方便,只需简单的三个函数: sqlite3_open(char* szDbFileName, sqlite3 ** db) sqlite3_exec(sqlite3 *db, char* szSqlCMD, callback, 0, char **zErrMsg) sqlite3_close(sqlite3 *db) static int callback(void *NotUsed, int argc, char **argv, char **azColName) 2.…
前言 查询处理及优化是关系数据库得以流行的根本原因,也是关系数据库系统最核心的技术之一.SQLite的查询处理模块很精致,而且很容易移植到不支持SQL的存储引擎(Berkeley DB最新的版本已经将其完整的移植过来). 查询处理一般来说,包括词法分析.语法分析.语义分析.生成执行计划以及执行计划几个部分.SQLite的词法分析器是手工写的(比较简单),语法分析器由Lemon生成,语义分析主要是进行语义方面的一些检查,比如table是否存在等.而执行计划的生成及执行是最核心的两部分,也是相对比较…
前言 最早的虚拟机可追溯到IBM的VM/370,到上个世纪90年代,在计算机程序设计语言领域又出现一件革命性的事情——Java语言的出现,它与c++最大的不同在于它必须在Java虚拟机上运行.Java虚拟机掀起了虚拟机技术的热潮,随后,Microsoft也不甘落后,雄心勃勃的推出了.Net平台.首先将SQLite虚拟机与Java虚拟机作对比. 1.概述 所谓虚拟机是指对真实计算机资源环境的一个抽象,它为解释性语言程序提供了一套完整的计算机接口.虚拟机的思想对现在的编译有很大影响,其思路是先编译成…
1.概述 Lemon是一个LALR(1)文法分析器生成工具,与bison和yacc类似,是一个可以独立于SQLite使用的开源的分析器生成工具.而且它使用与yacc(bison)不同的语法规则,可以减少编程时出现错误的机会.Lemon比yacc和bison更精致.更快,而且是可重入的,也是线程安全的——这对于支持多线程的程序是非常重要的. Lemon的主要功能就是根据上下文无关文法(CFG),生成支持该文法的分析器.程序的输入文件有两个: (1) 语法规则文件: (2) 分析器模板文件. 一般来…
SQLite轻量级数据库在移动应用中使用非常普遍,但是目前的库是C编写的,为了方便使用,对SQLite相关的操作用Swift进行了封装.这个封装代码使用了一个开源项目SQLiteDB,地址是:https://github.com/fahimf/sqlitedb 重要事项:SQLiteBD原作者最后只更新到Swift1.2便停止,说后面不会再更新了,如果使用Xcode7便会报错.我这里在其基础上进行了修改,使其支持Swift2.0. 下面通过一个样例展示SQlite数据库连接,创建表,查询数据,插…
SQLite作为一种应用广泛的文件式关系型数据库,python操作sqlite主要有两种方式,原生SQL语句和ORM映射工具. SQLAlchemy连接SQLITE SQLAlchemy是一款优秀的python连接关系型数据库的ORM工具,支持SQLite,MYSQL,ORICLE等多种关系型数据库,具体使用: 参见:http://docs.jinkan.org/docs/flask/patterns/sqlalchemy.html 这里主要记录一下SQLAlchemy连接SQLITE的配置方法…
作为Android预置的数据库模块,对SQLite的深入理解是很有必要的,能够从中找到一些优化的方向. 这里对SQLite的性能和内存进行了一些測试分析.对照了不同操作的运行性能和内存占用的情况,粗略地列在这里算是作个小结. 1. 基本架构 先了解一下SQLite主要架构 (详见<The Definitive Guide to SQLite>), 须要关注的是Compiler和Backend两个模块.正由于有一个虚拟机的存在.所以才有了Compiled Statement的价值,由于它能够降低…
SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令.本文档提供一个样使用sqlite3的简要说明. 开始 启动sqlite3程序,仅仅需要敲入带有SQLite数据库名字的"sqlite3"命令即可.如果文件不存在,则创建一个新的(数据库)文件.然后sqlite3程序将提示你输入SQL.敲入SQL语句(以分号“:”结束),敲回车键之后,SQL语句就会执行. 例如,创建一个包含一个表"tb11"名字为&qu…
本系列文章主要是使用C++语言来调用其API,达到管中窥豹的目的.另外本文使用的开发环境为mac + clion,并且基于SQLite 3.7.14来进行开发. 一.去下载sqlite-amalgamation-3071400.zip,然后解压到文件夹(其结构目录树如下): . ├── shell.c ├── sqlite3.c ├── sqlite3.h └── sqlite3ext.h 二.新建一个sql_tutorial的工程,景sqlite3.c和sqlite3.h文件拷贝到sql_sr…