← Anleitungen
DatenbankenEinsteiger2 Min

SQLite

Die meistgenutzte Datenbank der Welt: serverlos, eingebettet, in einer einzigen Datei. Wann SQLite die beste Wahl ist.

SQLite ist die wahrscheinlich am häufigsten eingesetzte Datenbank überhaupt — sie steckt in Smartphones, Browsern, Apps und unzähligen Geräten. Das Besondere: kein Server, keine Installation, die ganze Datenbank ist eine einzige Datei.

Was ist SQLite?

SQLite ist eine serverlose, eingebettete SQL-Datenbank. Es läuft kein separater Datenbankprozess — die Bibliothek wird direkt in die Anwendung eingebunden und liest/schreibt eine lokale Datei. Trotzdem versteht SQLite normales SQL und ist voll transaktionssicher (ACID).

Wann ist SQLite die richtige Wahl?

Lokale & mobile Apps. Daten direkt auf dem Gerät, ohne Server.

Edge & IoT. Ideal auf Gateways und kleinen Geräten — winziger Fussabdruck, robust.

Prototyping & Tests. In Sekunden einsatzbereit, keine Infrastruktur nötig.

Konfiguration & Cache. Als eingebetteter Datenspeicher in Programmen.

Stärken & Grenzen

Stärken: null Konfiguration, sehr schnell beim Lesen, extrem portabel (eine Datei kopieren) und ausgesprochen zuverlässig. Grenzen: SQLite ist nicht für viele gleichzeitig schreibende Nutzer über ein Netzwerk gemacht — sobald mehrere Clients parallel viel schreiben oder die Last serverseitig wächst, sind PostgreSQL oder MariaDB die bessere Wahl.

Faustregel: Ein Gerät oder eine App, überwiegend lesend → SQLite. Viele Nutzer über das Netzwerk → ein „echter" Datenbankserver.

SQLite anlegen & nutzen

Weil SQLite eingebettet ist, brauchst du keinen Server und keinen Docker-Container — die ganze Datenbank ist einfach eine Datei. Du legst sie entweder direkt im Terminal an oder lässt sie von deinem Programm erzeugen.

Im Terminal anlegen

Auf Debian/Ubuntu installierst du das Kommandozeilen-Tool. Danach erzeugt SQLite die Datei automatisch, sobald du sie öffnest:

1sudo apt-get install -y sqlite3
2
3# Datenbank-Datei öffnen (wird angelegt, falls sie noch nicht existiert)
4sqlite3 messwerte.db

Im sqlite3-Prompt legst du eine Tabelle an, schreibst Daten hinein und liest sie wieder aus:

1CREATE TABLE messwerte (
2 id INTEGER PRIMARY KEY,
3 sensor TEXT NOT NULL,
4 wert REAL NOT NULL,
5 ts TEXT DEFAULT (datetime('now'))
6);
7
8INSERT INTO messwerte (sensor, wert) VALUES ('temp-wohnzimmer', 21.4);
9INSERT INTO messwerte (sensor, wert) VALUES ('temp-keller', 18.1);
10
11SELECT * FROM messwerte;
12.quit

Mit Python lesen & schreiben

Python bringt das Modul „sqlite3" bereits in der Standardbibliothek mit — du musst also nichts zusätzlich installieren. Damit verbindest du dich mit der Datei und arbeitest mit ganz normalem SQL:

1import sqlite3
2
3# Verbindung zur Datei (wird angelegt, falls noch nicht vorhanden)
4con = sqlite3.connect("messwerte.db")
5cur = con.cursor()
6
7# Tabelle anlegen (nur beim ersten Mal nötig)
8cur.execute("""
9 CREATE TABLE IF NOT EXISTS messwerte (
10 id INTEGER PRIMARY KEY,
11 sensor TEXT NOT NULL,
12 wert REAL NOT NULL
13 )
14""")
15
16# Daten schreiben – Werte als Platzhalter (?) statt String-Verkettung
17cur.execute(
18 "INSERT INTO messwerte (sensor, wert) VALUES (?, ?)",
19 ("temp-wohnzimmer", 21.4),
20)
21con.commit()
22
23# Daten lesen
24for sensor, wert in cur.execute("SELECT sensor, wert FROM messwerte"):
25 print(sensor, wert)
26
27con.close()

Die Platzhalter („?") schützen vor SQL-Injection — setze Werte nie per String-Verkettung ein. Erst mit „con.commit()" werden die Änderungen dauerhaft in die Datei geschrieben.

Tipp: Deine gesamte Datenbank steckt in der einen Datei „messwerte.db" — zum Sichern oder Umziehen kopierst du einfach diese Datei. Für grössere Projekte lohnt sich später ein ORM wie SQLAlchemy („pip install sqlalchemy"), das SQL hinter Python-Objekten versteckt.

Fazit

SQLite ist der unkomplizierteste Einstieg in relationale Datenbanken: kein Setup, volles SQL, perfekt für lokale und eingebettete Szenarien. Für stark nebenläufige Server-Workloads wechselt man später zu PostgreSQL oder MariaDB.