SQLite ist unbewertet, aber viel genutzt.
Über eine Billion Datenbanken sollen produktiv im Betrieb sein
Deshalb ist ein Blick in das Thema sinnvoll!
Starten wir!
Was ist SQLite?

SQLite ist eine SQL-Datenbank, welche besonders klein im Programmcode ist. Sie ist in vielen Fällen schneller, autark und Featurereich im Vergleich zu den klassischen Datenbanksystemen wie MySQL, MariaDB, MongoDB und Postgres. SQLite soll über 1 Billion Installation weltweit haben, da diese Datenbank in Anwendungen und Apps als lokaler Datenspeicher integriert ist. Die Datenbank speichert die Inhaltsdaten in einer Datei, welche wir im Dateisystem normal ablegen und verschieben können.
Warum SQLite nutzen?
- SQL: Das Erste, was ein Entwickler über Datenbanken lernt, ist die Structured Query Language. Prinzipiell sollte diese immer gleich sein, aber Konzerne haben sich dafür entschieden Dialekte zu erfinden. Trotzdem sind die Befehle zu 90 % gleich und einfache Operationen kann jeder ausführen.
- Einfach zu installieren: Oftmals ist SQLite bereits installiert z. B. in den Android-Apps
- Unhip: NoSQL sind trendy, hip und modern, aber nicht immer die erste Wahl. Einfache Systeme wie SQLite reichen für Deine Zwecke häufig aus.
- Andere Datenbanksysteme schrecken ab: SQLite macht nicht alles besser und hat Schwächen, aber andere Systeme sind komplex, weil diese replizierbare Datenbanken über mehrere Instanzen unterstützen. Die Installationsgröße ist absurd hoch und leisten kaum mehr bzw. werden erst bei sehr großen Datenbanken interessant.
- Cross-Plattform: Das Dateiformat von SQLite kann mit allen Installationsarten verwendet werden. Wir brauchen nicht zwingend Windows, um auf Linux eine Windows SQLite zu lesen. Es funktioniert ohne Probleme.

Wer verwendet SQLite? Jedes Android-Gerät, iPhone und iOS-Gerät, Mac, Windows11-Rechner, Firefox-, Chrome– und Safari-Webbrowser, jeder Dropbox-Client, PHP und Python, die meisten Fernsehgeräte und Set-Top-Kabelboxen, die meisten Multimediasysteme für Autos, unzählige Millionen anderer Anwendungen. Frage lieber wer nicht SQLite verwendet!
SQLite ist oft die Option, wenn wir strukturiert Daten lokal ablegen wollen. Das können z. B. Einstellungen von einem Browser sein, der auch Lesezeichen speichern will. Oder eine Android-App, welche Nutzernamen und Ansichtseinstellungen speichert. Abfragen, Aggregation und JOINs sind kein Problem
Wann SQLite meiden?
SQLite halten einige Entwickler für Kinderspielzeug. Echte Datenbanksysteme können mehr aushalten. Das stimmt, aber die Realität zeigt, dass SQLite oft gut genug ist und wir uns keinen Ferrari kaufen müssen.
SQLite bitte nicht nutzen:
- Komplexe Abfragen: SQL-Statements können schnell sehr lang und unübersichtlich werden. Andere Datenbanksysteme sind besser im Ausführen solcher komplexen Statements.
- Größe: SQLite speichert die Daten in einer Datei. Das geht gut so lange, die Datenbank nicht unkontrolliert wächst. Bei großen Datenbanken müssen wir die Daten über viele Server, Festplatten und Netzwerke verteilen. Für solche Fälle ist MariaDB oder MongoDB besser.

- Hohe Nutzerzahlen: SQLite ist für den lokalen Gebrauch ausgelegt. SQLite als ausschließliche Webserver-Datenbank für eine große Nachrichtenagentur zu verwenden, ist unpassend.
- Viele Schreibprozesse: Das Problem mit Datenbanken ist das gleichzeitige Schreiben. Wenn 2+ Nutzer den gleichen Datenbankeintrag ändern wollen, kommt es zu Überlagerungen. Beide lesen den gleichen Wert, aber die Schreibprozesse führen zu inkonsistenten Daten. Deshalb sperrt die Datenbank Zellen, Zeilen oder Tabellen, um das doppelte Schreiben zu verhindern. SQLite
Schneller Start mit Python und DBBrowser
Installation
Zuerst brauchen wir Python:
Schritt 1: Besuche die offizielle Python-Website
- Öffne Deinen Browser.
- Gehe auf https://www.python.org.
- Klicke oben im Menü auf Downloads.
- Die Website erkennt Dein Betriebssystem automatisch und zeigt z. B. Download Python 3.x.x for Windows an.
- Klicke auf diesen Button, um den Installer herunterzuladen.
Schritt 2: Installer starten
- Öffne die heruntergeladene Datei (meist
python-3.x.x.exe
im Download-Ordner). - WICHTIG: Setze zuerst unten einen Haken bei “Add Python to PATH” (sehr wichtig für spätere Nutzung!).
- Klicke auf „Install Now“.
Schritt 3: Installation abwarten
- Der Installer kopiert jetzt die Dateien.
- Warte, bis die Installation abgeschlossen ist.
- Am Ende siehst Du die Meldung “Setup was successful”.
Optional kannst Du jetzt direkt auf “Disable path length limit” klicken (empfohlen), um spätere Probleme bei langen Dateipfaden zu vermeiden.
Schritt 4: Überprüfen, ob Python funktioniert
- Drücke
Win + R
, gibcmd
ein und drücke Enter (öffnet die Eingabeaufforderung). - Tippe:
python --version
oder:python
- Wenn alles richtig ist, siehst Du die installierte Python-Version oder die interaktive Python-Konsole (
>>>
).
Optional: pip (Paketmanager) testen in der Eingabeaufforderung:
pip --version
Wenn Du ansehen willst, was mit den Tabellen passiert, kannst Du Dir den Betrachter https://sqlitebrowser.org installieren. Das Programm kann die SQLite-Dateien / Datenbank öffnen und eignet sich auch zum Manipulieren und ausführen von SQL Kommandos.
Erste Daten schreiben
Im ersten Schritt installieren wir mit pip3 install sqlite3
die Bibliothek. Wir brauchen nicht wie bei MariaDB erst eine extra Software zu installieren, sondern können mit SQLite direkt in die Datei schreiben.
Erstelle ein sqlite.py and start mit dem Import der Bibliothek. Wir fügen die Verbindung zur SQLite Datenbank „employees.db“ hinzu. Mit dem Befehl cursor = connection.cursor()
haben wir einen Lese- und Schreibkopf für unsere Datenbank. Hier können wir die Kommandos in SQL ausführen.
import sqlite3
connection = sqlite3.connect("employees.db")
cursor = connection.cursor()
Jede Datenbank braucht Tabellen. Wir erstellen zwei Tabellen zu Beginn. Die Mitarbeiter ordnen wir Abteilunge zu.
cursor.execute("CREATE TABLE Persons ( PersonID int, LastName varchar(255),FirstName varchar(255), Address varchar(255), DepartmentFKID int);")
cursor.execute("CREATE TABLE Department ( DepartmentID int, Name varchar(255));")
Die Daten fügen wir mit einem INSERT INTO VALUES
ein. Wir müssen die Datentypen beachten und nach jedem SQL-Statement ein Semikolon setzen. Bedenke, dass einfache Anführungszeichen innerhalb der doppelten Anführungszeichen notwendig sind (alternativ umdrehen).
cursor.execute("INSERT INTO Persons (PersonID, LastName, FirstName, Address, DepartmentFKID) VALUES (0, 'Horst', 'Jan', 'SQLiteStraße 3', 0);")
cursor.execute("INSERT INTO Persons (PersonID, LastName, FirstName, Address, DepartmentFKID) VALUES (1, 'Phil', 'Kakadu', 'SQLiteStraße 5', 0);")
cursor.execute("INSERT INTO Persons (PersonID, LastName, FirstName, Address, DepartmentFKID) VALUES (2, 'Kim', 'Popper', 'MariaDB Chaussee 3', 0);")
Noch ein paar Daten für die Abteilungen:
cursor.execute("INSERT INTO Department (DepartmentID, Name) VALUES (0, 'Interne IT');")
cursor.execute("INSERT INTO Department (DepartmentID, Name) VALUES (1, 'Entwicklung');")
cursor.execute("INSERT INTO Department (DepartmentID, Name) VALUES (2, 'Verwaltungsgedöns');")
Lesen und JOIN
Jetzt wollen wir die Daten auslesen, sodass der Name der Abteilung auch bei den Mitarbeitern angezeigt wird. Der JOIN
findet auf Basis der AbteilungsID
statt, welche einmalig in der Tabelle Department ist.
cursor.execute("SELECT * FROM Persons LEFT JOIN Department ON Persons.DepartmentFKID = Department.DepartmentID; ")
Der Cursor speichert die Ausgaben. Der Cursor kann mehrere Datensätze speichern, deshalb loopen wir durch.
for datensatz in cursor:
print(datensatz)
Schreibe noch weitere …
cursor.execute("")
Zum Schluss wollen wir die SQL-Verbindung commiten und abschließen.
connection.commit()
connection.close()
Schreibe einen Kommentar