Datenbanken: Zustand prüfen, bevor Sie schreiben
Auch bei Datenbanken gilt: Ziel wählen, Struktur prüfen, Daten ansehen, eine begrenzte Änderung machen und danach kontrollieren.
Eine Datenbank ist strukturierter Zustand
Eine Datei zeigt ihren Inhalt direkt. Eine Datenbank stellt ihren Zustand über ein Datenbanksystem bereit: Tabellen oder Sammlungen, Datensätze, Indizes und Abfragen. Beginnen Sie nicht mit einer Schreiboperation. Prüfen Sie zuerst Treiber und Datenbank und sehen Sie sich die vorhandene Struktur an.
Dasselbe Prinzip wie bei Konfigurationsdateien gilt auch hier: Arbeiten Sie mit dem logischen Objekt — Tabelle, Zeile, Schlüssel oder Dokument — statt mit Details der physischen Speicherung.
`db` ist ein gemeinsames Vokabular, der Driver bleibt wichtig
install md db sqlitedbdb sqlitesqliteSQLite ist der sichere Übungsplatz
Eine SQLite-Datenbank ist eine lokale Datei ohne Netzwerk und Passwort. Erstelle die Tabelle und prüfe sie mit -t.
cd lil-playgroundmd datasqlite -c data/notes.sqlite -fsqlite : CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, title TEXT NOT NULL, status TEXT NOT NULL)sqlite -tErst Struktur, dann Datensätze
-s zeigt Felder und Typen, -n eine Vorschau. Ein leeres Ergebnis ist bei einer neuen Tabelle eine sinnvolle Bestätigung.
sqlite -s notessqlite -n notes 10Gezielte Writes können JSON verwenden
-a und -w nehmen Daten nach : als JSON entgegen. Nach jedem Write erneut anzeigen oder suchen; Delete bleibt eine bewusste Aktion.
sqlite -a notes : {"title":"First terminal note","status":"draft"}sqlite -a notes : {"title":"Archive project","status":"done"}sqlite -n notes 10sqlite -w notes title "First terminal note" : {"status":"reviewed"}sqlite -f notes reviewed 20Native SQL bleibt für echte SQL-Aufgaben
Aggregate und komplexe Abfragen gehören in die native :-Form. Der kompakte gemeinsame Layer muss nicht alles nachbilden.
sqlite : SELECT status, COUNT(*) AS count FROM notes GROUP BY statusExport und Dump sind verschiedene Artefakte
Export liefert portable Daten, Dump sichert Schema und Inhalt für Wiederherstellung. Backup erst dann vertrauen, wenn Restore verstanden und getestet ist.
sqlite -o notes -j data/notes.json -fsqlite dump data/notes.sql -fstat data/notes.sqlRemote-Datenbanken bringen Zugangsdaten und Netzwerk hinzu
MySQL/PostgreSQL/Redis/MongoDB haben eigene Verbindungsmodelle. Passwörter nie in wiederverwendbare öffentliche Skripte schreiben.
db mysqlmysql -c localhost app shoppostgresql -c localhost app shopAls Skript aufbewahren
database-checkpoint.lil öffnet die lokale SQLite-Übung, prüft die Tabelle und erzeugt einen Dump, ohne Business-Writes zu automatisieren.
#lil
@install md sqlite
cd lil-playground
md data
sqlite -c data/notes.sqlite -f
sqlite : CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, title TEXT NOT NULL, status TEXT NOT NULL)
sqlite -t
sqlite -n notes 10
sqlite dump data/notes.sql -f