SQLite: Die eingebettete Datenbank
SQLite braucht keinen Server und speichert alles in einer einzigen Datei. Lerne, wann sich die kompakte Datenbank lohnt und wie du sie nutzt.
Nicht jedes Projekt braucht einen großen Datenbankserver. SQLite ist eine eingebettete Datenbank, die ihre gesamten Daten in einer einzigen Datei speichert und ohne separaten Serverprozess auskommt. Sie steckt in unzähligen Apps, Browsern und Smartphones. In diesem Beitrag lernst du, was SQLite so besonders macht und wie du sie einsetzt.
Was SQLite besonders macht
Anders als PostgreSQL oder MySQL läuft SQLite nicht als eigener Serverprozess. Stattdessen ist sie eine kleine Bibliothek, die direkt in deine Anwendung eingebettet wird. Die ganze Datenbank ist eine einzige Datei, die du kopieren, versenden oder versionieren kannst. Das macht sie ideal für mobile Apps, Prototypen und kleinere Werkzeuge.
Eine Datenbank erstellen
SQLite bringt ein eigenes Kommandozeilenwerkzeug mit. Du startest es einfach mit dem Namen einer Datei, die dann deine Datenbank wird.
# Öffnet (oder erstellt) die Datei meine.db
sqlite3 meine.dbExistiert die Datei noch nicht, legt SQLite sie automatisch an, sobald du die erste Tabelle erstellst. Es gibt keine Installation eines Servers, keine Konfiguration, nichts.
Tabellen und Daten
Innerhalb von SQLite nutzt du ganz normales SQL. Tabellen legst du mit CREATE TABLE an, und mit INTEGER PRIMARY KEY bekommst du automatisch eine hochzählende ID.
CREATE TABLE aufgaben (
id INTEGER PRIMARY KEY,
titel TEXT NOT NULL,
erledigt INTEGER DEFAULT 0
);
INSERT INTO aufgaben (titel) VALUES ('Einkaufen');
INSERT INTO aufgaben (titel) VALUES ('Code schreiben');
SELECT * FROM aufgaben WHERE erledigt = 0;Beachte: SQLite kennt keinen eigenen Boolean-Typ, deshalb nutzt man üblicherweise INTEGER mit den Werten 0 und 1.
SQLite in Node.js nutzen
Besonders praktisch ist SQLite in kleinen Node.js-Projekten. Mit einem Paket wie better-sqlite3 sprichst du die Datenbank direkt aus deinem Code an.
npm install better-sqlite3const Database = require('better-sqlite3');
const db = new Database('meine.db');
// Tabelle anlegen
db.exec(`
CREATE TABLE IF NOT EXISTS aufgaben (
id INTEGER PRIMARY KEY,
titel TEXT NOT NULL
)
`);
// Daten einfügen (mit Platzhalter gegen SQL-Injection)
const insert = db.prepare('INSERT INTO aufgaben (titel) VALUES (?)');
insert.run('Blogbeitrag schreiben');
// Daten auslesen
const alle = db.prepare('SELECT * FROM aufgaben').all();
console.log(alle);Die Verwendung von ?-Platzhaltern schützt dich zuverlässig vor SQL-Injection.
Wann SQLite passt und wann nicht
SQLite ist großartig, aber nicht für jeden Zweck gedacht. Hier eine Orientierung:
- Gut geeignet: mobile Apps, Desktop-Programme, Prototypen, Tests und Websites mit moderatem Lesezugriff.
- Weniger geeignet: Anwendungen mit sehr vielen gleichzeitigen Schreibzugriffen oder verteilten Servern.
Der Grund: SQLite erlaubt zwar viele gleichzeitige Lesevorgänge, sperrt beim Schreiben aber die ganze Datei. Für hohe parallele Schreiblast ist ein Server wie PostgreSQL die bessere Wahl.
Migration ist einfach
Da SQLite Standard-SQL spricht, lassen sich Projekte später meist gut auf eine größere Datenbank umziehen. Viele Teams starten bewusst mit SQLite und wechseln erst, wenn die Anforderungen wachsen. So vermeidest du unnötige Komplexität am Anfang.
Fazit
SQLite ist die ideale Datenbank, wenn du etwas Einfaches, Schnelles und Serverloses brauchst. Sie speichert alles in einer Datei, spricht ganz normales SQL und lässt sich mühelos in Node.js oder andere Sprachen einbinden. Für mobile Apps, Prototypen und kleine Werkzeuge ist sie unschlagbar praktisch. Wenn deine Anforderungen wachsen, kannst du dank Standard-SQL später bequem auf einen Datenbankserver umsteigen.