SQLite 3.8.8 发布,此版本是 SQLite 常规的维护版本,没有引人注目的新特性或者性能改进,只是不断的在改进。主要的性能提升是通过重构 B-Tree 重整逻辑来避免不必要的 memcpy() 操作。新特性包括 PRAGMA data_version 状态,可以访问一个 VALUES clause ,不限制任意行数。此外解决了一些 Mac 上的编译错误和多线程问题。
更多内容请看 更新日志 。
SQLite是遵守ACID的 关联式数据库 管理系统,它包含在一个相对小的C库中。它是 D.RichardHipp 建立的公有领域项目。
不像常见的 客户-服务器 范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接 API 调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。
库实现了多数的SQL-92标准,包括 事务 ,就是代表 原子性 、 一致性 、 隔离性 和 持久性 的(ACID),触发器和多数的复杂查询。不进行 类型检查 。你可以把字符串插入到整数列中。例如,某些用户发现这是使数据库更加有用的创新,特别是与无类型的脚本语言一起使用的时候。其他用户认为这是主要的缺点。
多个 进程 或 线程 可以访问同一个数据而没有问题。可以并行的满足多个读访问。只有在其他访问当前不被服务的时候才能满足写访问;否则写访问失败并带有一个错误代码(也可以在可配置的超时过期之后自动的重试)。
提供了叫做 sqlite 的一个独立程序用来查询和管理SQLite数据库文件。 它也充当写使用SQLite库的应用的一个例子。
可以从C/C++程序中使用这个库,还可以获得对Tcl和一些其他脚本语言的绑定。
在CPAN的 DBD::SQLite 上有一个Perl的 DBI/DBD 模块,它不是到SQLite的接口,而是包括整个SQLite数据库引擎在其中并不需要任何额外的软件。
还有一个Python模块叫做 PySQLite 。
PHP从PHP5.0开始包含了SQLite,但是自5.1版之后开始成为一个延伸函式库。SQLite能与PHP4一起工作但不包含在其中。
Rails 2.0.3将缺省的数据库配置改为了SQLite 3
SQLite亦可以作为桌面数据库使用,以下为第三方SQLite的 GUI 软件。例如,
SQLiteMan,使用QT开发的一个SQLite客户端,支持多语言、跨平台。 SQLiteMan
SQLite Manager, 以 火狐浏览器的扩展 形式提供的SQLite客户端。
SQLite Database Browser , a graphical client to access SQLite databases
SqlPro SQL Client , another graphical client to work with SQLite databases
在线文档: http://www.ostools.net/apidocs/apidoc?api=sqlite