SQLite
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自2.5之后将pysqlite内置,模块名为sqlite3。[1][2]
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管理客户端
SQLite亦可以作为桌面数据库使用,以下为第三方SQLite的GUI软件。例如,
- Navicat导航猫for SQLite是一套专为SQLite设计的强大数据库管理及开发工具。它可以用于任何版本2或3的SQLite数据库,并支援大部份SQLite的功能,包括触发器、索引、检视等。。
- SQLiteMan,使用QT开发的一个SQLite客户端,支持多语言、跨平台。SQLiteMan
- SQLite Manager,以Firefox浏览器的扩展形式提供的SQLite客户端。
- SQLite Database Browser,一款连接SQLite数据库的图形客户端。
- SqlPro SQL Client,又一款能工作在SQLite数据库上的图形客户端。
- SQLiteSpy,是一个快速和紧凑的GUI SQLite数据库管理器。它读取sqlite3的文件和执行对他们的SQL。它的图形用户界面使得它很容易探索,分析和处理sqlite3的数据库。SQLiteSpy
外部链接
- SQLite主页
- Database Master
- pysqlite - A Python Wrapper.
- DBD::SQLite - CPAN上的Perl模块。
- Sqlite-ruby - Ruby语言接口。
- SQLiteManager - 管理SQLite数据库的多语言的PHP4写的web工具。
- SQLite Developer - SQLite可视化数据库管理器。
- SQLiteBrowser - 视窗接口SQLite数据库浏览器
- SQLite ODBC驱动程序
- SQLiteSpy - Win32 GUI with Unicode support, Freeware
- SQLite Administrator (english, german, french, portugues)
- SQLite.NET 2.0 - An ADO.NET 2.0 provider for SQLite
- Using SQLite Database with OpenOffice.org(via ODBC or *sqlite-sdbc-driver)
- A tutorial to SQLite3
- Interview with Richard Hipp