Sqlite3

Overview

sqlite3 has many features that make it different and unique from other database solutions. The API for sqlite3 is based on the C language and has very nice reference documentation including a wiki. Although the base API is based on C, there are wrappers for many other languages.

From the http://www.sqlite.org/ homepage:

sqlite3 is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine. Features include:

  • Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures.
  • Zero-configuration - no setup or administration needed.
  • Implements most of SQL92. (Features not supported)
  • A complete database is stored in a single disk file.
  • Database files can be freely shared between machines with different byte orders.
  • Supports terabyte-sized databases and gigabyte-sized strings and blobs. (See limits.html.)
  • Small code footprint: less than 250KiB fully configured or less than 150KiB with optional features omitted.
  • Faster than popular client/server database engines for most common operations.
  • Simple, easy to use API.
  • TCL bindings included. Bindings for many other languages available separately.
  • Well-commented source code with over 98% test coverage.
  • Available as a single ANSI-C source-code file that you can easily drop into another project.
  • Self-contained: no external dependencies.
  • Sources are in the public domain. Use for any purpose.

The sqlite3 distribution comes with a standalone command-line access program (sqlite) that can be used to administer an sqlite3 database and which serves as an example of how to use the sqlite3 library.