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..quitbzw..exitbeendet 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)mitMATCH-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 KEYist ein Alias der internenrowid; mitAUTOINCREMENTwerden 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.