SQLite
An Embeddable SQL Database Engine
This page was last modified on 2004/04/23 17:04:45 UTC
The latest SQLite version is
2.8.16
created on 2005/02/14 00:25:48 UTC
Introduction
SQLite is a C library that implements an embeddable SQL database engine.
Programs that link with the SQLite library can have SQL database
access without running a separate RDBMS process.
The distribution comes with a standalone command-line
access program (
sqlite.html
sqlite
) that can
be used to administer an SQLite database and which serves as
an example of how to use the SQLite library.
SQLite is
not
a client library used to connect to a
big database server.  SQLite
is
the server.  The SQLite
library reads and writes directly to and from the database files
on disk.
Quick Links:
download.html
Download
http://www.sqlite.org/cvstrac/timeline
Change Log
http://www.sqlite.org/cvstrac/tktnew
Report a bug
quickstart.html
Quick start
Features
Implements most of SQL92.
(
omitted.html
Features not supported
)
A complete database (with multiple tables and indices) is
stored in a single disk file.
ACID (Atomic, Consistent, Isolated, Durable) transactions.
Database files can be freely shared between machines with
different byte orders.
Supports databases up to 2 terabytes (2^41 bytes) in size.
A zero-configuration database engine - no DBA needed.
Small memory footprint: less than 30K lines of C code.
speed.html
Two times faster
than PostgreSQL and
MySQL for many common operations.
Very simple
c_interface.html
C/C++ interface
requires the use of only
three functions and one opaque structure.
tclsqlite.html
TCL bindings
included.
Bindings for many other languages
http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers
available separately.
Simple, well-commented source code.
Automated test suite provides over 90% code coverage.
Self-contained: no external dependencies.
Built and tested under Linux and Windows.
Sources are in the
copyright.html
public domain
.
Use for any purpose.
Current Status
A
changes.html
Change Summary
is available on this
website.  You can also access a detailed
http://www.sqlite.org/cvstrac/timeline
change history
,
http://www.sqlite.org/cvstrac/rptview?rn=2
view open bugs
,
or
http://www.sqlite.org/cvstrac/tktnew
report new bugs
at the
http://www.sqlite.org/cvstrac/
CVS server
.
Complete source code and precompiled binaries for the latest release are
download.html
available for download
on this site.  You
can also obtain the latest changes by anonymous CVS access:
cvs -d :pserver:anonymous@www.sqlite.org:/sqlite login
cvs -d :pserver:anonymous@www.sqlite.org:/sqlite checkout sqlite
When prompted for a password, enter "anonymous".
Whenever either of the first two digits in the version number
for SQLite change, it means that the underlying file format
has changed.  Usually these changes are backwards compatible.
See
formatchng.html
formatchng.html
for additional information.
Documentation
The following documentation is currently available:
A
quickstart.html
Quick Start
guide to using SQLite in
5 minutes or less.
faq.html
Frequently Asked Questions
are available online.
Information on the
sqlite.html
sqlite
command-line utility.
SQLite is
datatypes.html
typeless
.
The
lang.html
SQL Language
subset understood by SQLite.
The
c_interface.html
C/C++ Interface
.
The
nulls.html
NULL handling
in SQLite versus
other SQL database engines.
The
tclsqlite.html
Tcl Binding
to SQLite.
The
arch.html
Architecture of the SQLite Library
describes
how the library is put together.
A description of the
opcode.html
virtual machine
that
SQLite uses to access the database.
A description of the
fileformat.html
database file format
used by SQLite.
A
speed.html
speed comparison
between SQLite, PostgreSQL,
and MySQL.
User-written documentation is available on the
http://www.sqlite.org/cvstrac/wiki
SQLite Wiki
.  Please
contribute if you can.
The SQLite source code is 30% comment.  These comments are
another important source of information.
Mailing List
A mailing list has been set up for discussion of
SQLite design issues or for asking questions about SQLite.
To subscribe send an email to
mailto:sqlite-users-subscribe@sqlite.org
sqlite-users-subscribe@sqlite.org
.
If you would prefer to get digests rather than individual
emails, send a message to to
mailto:sqlite-users-digest-subscribe@sqlite.org
sqlite-users-digest-subscribe@sqlite.org
.
For additional information about operating and using this
mailing list, send a message to
mailto:sqlite-users-help@sqlite.org
sqlite-users-help@sqlite.org
and instructions will be
sent by to you by return email.
Professional Support and Custom Modifications
If you would like professional support for SQLite
or if you want custom modifications to SQLite performed by the
original author, these services are available for a modest fee.
For additional information visit
http://www.hwaci.com/sw/sqlite/support.html
http://www.hwaci.com/sw/sqlite/support.html
or contact:
D. Richard Hipp
Hwaci - Applied Software Research
704.948.4565
mailto:drh@hwaci.com
drh@hwaci.com
Building From Source
To build sqlite under Unix, just unwrap the tarball, create a separate
build directory, run configure from the build directory and then
type "make".  For example:
$ tar xzf sqlite.tar.gz
Unpacks into directory named "sqlite"
$ mkdir bld
Create a separate build directory
$ cd bld
$ ../sqlite/configure
$ make
Builds "sqlite" and "libsqlite.a"
$ make test
Optional: run regression tests
If you prefer, you can also build by making whatever modifications
you desire to the file "Makefile.linux-gcc" and then executing that
makefile.  The latter method is used for all official development
and testing of SQLite and for building the precompiled
binaries found on this website.  Windows binaries are generated by
cross-compiling from Linux using
http://www.mingw.org/
MinGW
Related Sites
For information bindings of SQLite to other programming languages
(Perl, Python, Ruby, PHP, etc.) and for a list of programs currently
using SQLite, visit the Wiki documentation at:
http://www.sqlite.org/cvstrac/wiki
http://www.sqlite.org/cvstrac/wiki
