SQLite is a lightweight, fast and embedded SQL database engine. SQLite is perfect for small to medium-sized applications, prototyping, embedded systems and local data storage in Python applications because it doesn't require a separate server process like other relational database management systems (RDBMS) like MySQL or PostgreSQL.
Features of SQLite:
Serverless
Self-Contained
Zero-Configuration
Transactional
Single-Database
We don't need to install anything additional to get started because Python has built-in support for SQLite through the sqlite3 module. Let's understand each of the features in detail.
1. Serverless
Generally, an RDBMS such as MySQL, PostgreSQL, etc., needs a separate server process to operate. The applications that want to access the database server use TCP/IP protocol to send and receive requests and it is called client/server architecture. The diagram below illustrates the working of relational databases:
SQLite does not require a server to run. SQLite database read and write directly from the database files stored on disk and applications interact with that SQLite database. It is one of SQLite's biggest advantages is that it is serverless. Here's what that means:
There is no separate server process to manage. The SQLite engine is embedded directly into the application.
All you need is the SQLite database file, your program can read from and write to it without connecting to a remote service.
This reduces overhead, setup complexity and dependencies, making SQLite perfect for desktop apps, mobile apps, IoT devices or lightweight data-driven Python scripts.