SQLite: An Embeddable SQL Database


SQLite is an open source embeddable relational database management system. It is entirely self-contained with no external dependencies. SQLite supports much of the SQL-92 standard, runs on all major operating systems, and has support for the major languages. Its read operations can be multitasked, though writes can only be performed sequentially.

Internally, SQLite consists of several components: (i) an SQL compiler, (ii) a core, (iii) a back end, and (iv) accessories. SQLite’s utilization of a virtual machine, the Virtual Database Engine (VDBE), makes it easy to debug, modify, and extend SQLite’s core. All SQL statements are compiled into easy-to-read assembly executed in the SQLite virtual machine. SQLite supports databases of up to 2 TB, with each database stored entirely in a single disk file. The data is stored on disk in a B+ tree data structure.

SQLite does not support static data typing and, instead, uses column affinity. This means that instead of a datatype being a property of a table column, it is a property of the data itself. SQLite supports the NULL, INTEGER, REAL, TEXT, and BLOB data types.