Introduction

In this blog i’ll introduce an abridget about SQLite and its main features.

This blog for software developers.

What Is SQLite?
In the simplest terms, SQLite is a public-domain software package that provides a relational database management system, or RDBMS. Relational database systems are used to store user-defined records in large tables. In addition to data storage and management, a database engine can process complex query commands that combine data from multiple tables to generate reports and data summaries. Other popular RDBMS products include Oracle Database, IBM’s DB2, and Microsoft’s SQL Server on the commercial side, with MySQL and PostgreSQL being popular open source products.
The “Lite” in SQLite does not refer to its capabilities. Rather, SQLite is lightweight when it comes to setup complexity, administrative overhead, and resource usage.

SQLite Features
SQLite is defined by the following features:

  • Serverless
    SQLite does not require a separate server process or system to operate. The SQLite
    library accesses its storage files directly.
  • Zero Configuration
    No server means no setup. Creating an SQLite database instance is as easy as
    opening a file.
  • Cross-Platform
    The entire database instance resides in a single cross-platform file, requiring no
    administration.
  • Self-Contained
    A single library contains the entire database system, which integrates directly into
    a host application.
  • Small Runtime Footprint
    The default build is less than a megabyte of code and requires only a few megabytes
    of memory. With some adjustments, both the library size and memory use can be
    significantly reduced.
  • Transactional
    SQLite transactions are fully ACID-compliant, allowing safe access from multiple
    processes or threads.
  • Full-Featured
    SQLite supports most of the query language features found in the SQL92 (SQL2)
    standard.
  • Highly Reliable
    The SQLite development team takes code testing and verification very seriously.

Overall, SQLite provides a very functional and flexible relational database environment that consumes minimal resources and creates minimal hassle for developers and users.
This simplicity makes it fairly straightforward to port SQLite to just about any environment, including mobile phones, handheld media players, game consoles, and other
devices, where no traditional database system could ever dare to venture.
SQLite is designed to be integrated directly into an executable. This eliminates the need for an external library and simplifies distribution and installation. Removing external dependencies also removes most versioning issues. If the SQLite code is built right into your application, you never have to worry about linking to the correct version of a client library, or that the client library is version-compatible with the database server.
Eliminating the server imposes some restrictions, however. SQLite is designed to ad-dress localized storage needs, such as a web server accessing a local database. This means it isn’t well suited for situations where multiple client machines need to access a centralized database. That situation is more representative of a client/server archi-tecture, and is better serviced by a database system that uses the same architecture.

 


Unique Features

SQLite offers several features not found in many other database systems. The most notable difference is that SQLite uses a dynamic-type system for tables. The SQLite engine will allow you to put any value into nearly any column, regardless of type. This is a major departure from traditional database systems, which tend to be statically typed. In many ways, the dynamic-type system in SQLite is similar to those found in popular scripting languages, which often have a single scalar type that can accept any-thing from integers to strings. In my own experience, the dynamic-type system has solved many more problems than it has caused.
Another useful feature is the ability to manipulate more than one database at a time. SQLite allows a single database connection to associate itself with multiple database files simultaneously. This allows SQLite to process SQL statements that bridge across multiple databases. This makes it trivial to join tables from different databases with a single query, or bulk copy data with a single command.
SQLite also has the ability to create fully in-memory databases. These are essentially database “files” that have no backing store and spend their entire lifetime within the file cache. While in-memory databases lack durability and do not provide full transaction support, they are very fast (assuming you have enough RAM), and are a great place to store temporary tables and other transient data.
There are a number of other features that make SQLite extremely flexible. Many of these, like virtual tables, are based off similar features found in other products, but with their own unique twist. These features and extensions provide a number of powerful tools to adapt SQLite to your own particular problem or situation.

Source