SQLite ist eine eingebettete relationale Datenbank, die D. Richard Hipp ab 2000 in C entwickelte und als gemeinfreie Bibliothek veröffentlichte. Anders als Oracle oder SQL Server läuft SQLite ohne eigenen Serverprozess: Die gesamte Datenbank liegt in einer einzigen Datei und wird direkt in die Anwendung eingebunden. Sie ist die am weitesten verbreitete Datenbank-Engine der Welt (Android, iOS, Browser, eingebettete Geräte).

Die sqlite3-Kommandozeile

Die CLI startet mit sqlite3 datei.db und verarbeitet SQL sowie Punkt-Kommandos:

sqlite3 kunden.db
.tables                -- Tabellen auflisten
.schema kunden         -- CREATE-Statement anzeigen
.headers on
.mode column
SELECT * FROM kunden;

Wichtige Punkt-Kommandos

  • .databases, .open datei.db, .read skript.sql, .backup ziel.db, .restore.
  • .tables, .schema, .indexes, .dump (komplettes Backup als SQL).
  • .import datei.csv tabelle, .output datei.txt, .mode csv|column|json, .headers on|off.
  • .quit bzw. .exit beendet die CLI.

Wichtige SQL- und PRAGMA-Befehle

  • Transaktionen: BEGIN, COMMIT, ROLLBACK.
  • UPSERT: INSERT ... ON CONFLICT(id) DO UPDATE SET ... (ab Version 3.24, 2018).
  • PRAGMA: journal_mode=WAL (Write-Ahead-Logging, besserer Nebenläufigkeit), foreign_keys=ON, synchronous, page_size, user_version.
  • Volltextsuche: CREATE VIRTUAL TABLE such AS USING fts5(inhalt) mit MATCH-Abfragen.
  • Window Functions (ab 3.25, 2018), CTEs mit WITH, RETURNING (ab 3.35).
  • Typen: SQLite ist dynamisch typisiert mit Affinitäten INTEGER, TEXT, REAL, BLOB, NUMERIC.
  • rowid: INTEGER PRIMARY KEY ist ein Alias der internen rowid; mit AUTOINCREMENT werden IDs nie wiederverwendet.

In Python ist SQLite über das Standardmodul sqlite3 nutzbar, in PHP über PDO — ideal für kleine Tools, Tests und Prototypen, bei denen ein eigener Datenbankserver zu schwer wäre.

Verwandte Grundlagen: SQL-Befehle, PL/SQL-Befehle, T-SQL-Befehle.