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 sqlite323# 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);78INSERT INTO messwerte (sensor, wert) VALUES ('temp-wohnzimmer', 21.4);9INSERT INTO messwerte (sensor, wert) VALUES ('temp-keller', 18.1);1011SELECT * 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 sqlite323# Verbindung zur Datei (wird angelegt, falls noch nicht vorhanden)4con = sqlite3.connect("messwerte.db")5cur = con.cursor()67# 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 NULL13 )14""")1516# Daten schreiben – Werte als Platzhalter (?) statt String-Verkettung17cur.execute(18 "INSERT INTO messwerte (sensor, wert) VALUES (?, ?)",19 ("temp-wohnzimmer", 21.4),20)21con.commit()2223# Daten lesen24for sensor, wert in cur.execute("SELECT sensor, wert FROM messwerte"):25 print(sensor, wert)2627con.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.
