SQLite

A multi-platform flat file database engine with a simplified SQL interface and relational capabilities. Intended to be embedded into other programs as a zero-administration, statically linked lightweight database engine rather than as a standalone tool and as such has direct support for C, C++ and TCL and support for a multitude of others via third parties. The software is open source but the original author also sells proprietary extensions and developer support and offers customisation services on a commercial basis.

Like some of the other open source tools the capabilities of the engine are often hyped up. In particular the advantages of the SQL compatibility are overstated, while it is genuinely helpful for those that know SQL well and quite a lot of developers do especially if they work with web software, the implementation varies so much from modern SQL systems that if you hope for a quick port of a front end it is more or less out of the question.

SQLite pro's

 * Code is open source, is in the public domain.
 * Code quality is in general excellent.
 * Massive industry support, has been ported to anything from feature phones and toys to mainframes and super-computers.
 * Zero-administration
 * Can be linked statically or dynamically
 * Reasonable SQL compatibility, great if you already know an SQL variant.
 * Fairly small, code size can be as low as 250k.
 * Reasonably fast
 * ACID conformant, will recover from a crash or power failure even if it was writing to a file at the time.

SQLite cons

 * Is a flat file database despite everything, this means that even though the software supports multi threading, in praxis it never is since you only get sequential writes.
 * Only supports a subset of the outdated SQL92 standard, and far from a complete subset at that although the most commonly used features are available.
 * Some SQL constructs are faked by SQLite, i.e. it accepts the commands and gives the "right" answers, but either functionally does nothing or masks the response by using other features.
 * Reasonable SQL compatibility, if you do not already know an SQL variant, it is not the easiest language in the world to live with and for the simple tasks most embeddable databases perform, an outdated overkill.
 * Executable Code size of 250k only attainable in the mind of the original developer, real life examples considerably bigger although not problematically so, but enough to make other options worth a look.
 * Does not support SQL case sensitivity.
 * Supports file compression but cannot read or write while it is performing it.
 * No encryption facilities built in.
 * Flat file with no strong integrity features means a corruption can occur that can be hidden for years, for that reason business and legal data should never be stored on and SQLite database.
 * In-memory databases not really possible.

OS/2 tools that can access SQLite databases directly

 * REXX/SQL - SQL access for REXX - Open source - Current

Version

 * Current: 3.8.7.2
 * Please note, there are older compiled versions on Hobbes and other OS/2 download sites, however that is misleading since it is meant to be distributed as source code and binary distributions are of little use unless they are compiled as DLL's.
 * Note also that OS/2 specific support was removed from the main codebase with version 3.7.14, however it still exists in the Mozilla version, it is best to use the source used in the newest version of any of the Mozilla internet tools.

Related utilities

 * SQLite Browser - Visually edit & create SQLite databases - Open source - Current

Links

 * Homepage

License

 * The main program is in the Public Domain, some of the extensions offered by the original author are only available under a commercial license, but they are usually not distributed with the main package.

Author

 * Dwayne Richard Hipp

Contact info

 * Hipp, Wyrick & Company Inc. - Applied Software Research
 * Tel: +1 704 948 4565.
 * E-Mail: drh@hwaci.com