SQLite is an in-process library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed database in the world with more applications than we can count, including several high-profile projects.
SQLite is an embedded SQL database engine. Unlike most other SQL databases, SQLite does not have a separate server process. SQLite reads and writes directly to ordinary disk files. A complete SQL database with multiple tables, indices, triggers, and views, is contained in a single disk file. The database file format is cross-platform – you can freely copy a database between 32-bit and 64-bit systems or between big-endian and little-endian architectures. These features make SQLite a popular choice as an Application File Format. SQLite database files are a recommended storage format by the US Library of Congress. Think of SQLite not as a replacement for Oracle but as a replacement for fopen()
SQLite is a compact library. With all features enabled, the library size can be less than 600KiB, depending on the target platform and compiler optimization settings. (64-bit code is larger. And some compiler optimizations such as aggressive function inlining and loop unrolling can cause the object code to be much larger.) There is a tradeoff between memory usage and speed. It generally runs faster the more memory you give it. Nevertheless, performance is usually quite good even in low-memory environments. Depending on how it is used, SQLite can be faster than direct filesystem I/O.
- Added support for approximate ANALYZE using the PRAGMA analysis_limit command.
- Added the bytecode virtual table.
- Add the checksum VFS shim to the set of run-time loadable extensions included in the source tree.
- Added the iif() SQL function.
- INSERT and UPDATE statements now always apply column affinity before computing CHECK constraints. This bug fix could, in theory, cause problems for legacy databases with unorthodox CHECK constraints the require the input type for an INSERT is different from the declared column type. See ticket 86ba67afafded936 for more information.
- Added the sqlite3_create_filename(), sqlite3_free_filename(), and sqlite3_database_file_object() interfaces to better support of VFS shim implementations.
- Increase the default upper bound on the number of parameters from 999 to 32766.
- Added code for the UINT collating sequence as an optional loadable extension.
- Enhancements to the CLI:
- Add options to the .import command: –csv, –ascii, –skip
- The .dump command now accepts multiple LIKE-pattern arguments and outputs the union of all matching tables.
- Add the .oom command in debugging builds
- Add the –bom option to the .excel, .output, and .once commands.
- Enhance the .filectrl command to support the –schema option.
- The UINT collating sequence extension is automatically loaded
- The ESCAPE clause of a LIKE operator now overrides wildcard characters, so that the behavior matches what PostgreSQL does.