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从PHP 5.0开始已经包含SQLite,但是自5.1版之后,SQLite开始成为一个延伸库。SQLite能与PHP4一起工作,但不包含在PHP4里面。
Rails2.0.3将缺省的数据库配置改为了SQLite 3。
Delphi:DISQLite3作为Delphi的一个第三方控件,不是SQLite的API,也不是接口,而是把SQLite数据库引擎重新封装编译到Delphi的目标程序中,无需任何外部DLL。支持所有版本Delphi。DISQlite3
SQLite 3.7.3 更新:
- Added the sqlite3_create_function_v2() interface that includes a destructor callback.
- Added support for custom r-tree queries using application-supplied callback routines to define the boundary of the query region.
- The default page cache strives more diligently to avoid using memory beyond what is allocated to it by SQLITE_CONFIG_PAGECACHE. Or if using page cache is allocating from the heap, it strives to avoid going over the sqlite3_soft_heap_limit64(), even if SQLITE_ENABLE_MEMORY_MANAGEMENT is not set.
- Added the sqlite3_soft_heap_limit64() interface as a replacement for sqlite3_soft_heap_limit().
- The ANALYZE command now gathers statistics on tables even if they have no indices.
- Tweaks to the query planner to help it do a better job of finding the most efficient query plan for each query.
- Enhanced the internal text-to-numeric conversion routines so that
they work with UTF8 or UTF16, thereby avoiding some UTF16-to-UTF8
text conversions.
- Fix a problem that was causing excess memory usage with large WAL transactions in win32 systems.
- The interface between the VDBE and B-Tree layer is enhanced such
that the VDBE provides hints to the B-Tree layer letting the B-Tree
layer know when it is safe to use hashing instead of B-Trees for
transient tables.
- Miscellaneous documentation enhancements.
点击进入 SQLite 项目主页 |