Introduzione

Parte 8

Database: ispeziona lo stato prima di scrivere

Scegliere il target, vedere la struttura, leggere i dati, cambiare una cosa e verificare resta il ritmo più sicuro.

Un database è stato strutturato

Un file mostra direttamente il proprio contenuto. Un database espone lo stato tramite un motore: tabelle o collezioni, record, indici e query. Non iniziare con una scrittura. Prima verifica il driver e il database selezionato, poi osserva la struttura già presente.

Vale lo stesso principio dei file di configurazione: lavora con l’oggetto logico — tabella, riga, chiave o documento — invece di ragionare su come i dati sono memorizzati fisicamente.

`db` condivide il vocabolario, il driver conta ancora

db riflette le operazioni comuni; i comandi diretti mantengono le differenze del motore.

install md db sqlite
db
db sqlite
sqlite

SQLite è il posto più sicuro per imparare

È un file locale senza rete o password. Crea la tabella di prova e controllala con -t.

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

Prima struttura, poi righe

-s mostra campi e tipi; -n offre una previsione. Una tabella vuota è comunque un risultato informativo.

sqlite -s notes
sqlite -n notes 10

Le scritture mirate possono usare JSON

-a e -w ricevono un oggetto JSON dopo :. Controlla dopo ogni write e tratta delete come scelta deliberata.

sqlite -a notes : {"title":"First terminal note","status":"draft"}
sqlite -a notes : {"title":"Archive project","status":"done"}
sqlite -n notes 10
sqlite -w notes title "First terminal note" : {"status":"reviewed"}
sqlite -f notes reviewed 20

SQL nativo rimane disponibile

Aggregazioni e query specifiche appartengono naturalmente alla forma nativa con :.

sqlite : SELECT status, COUNT(*) AS count FROM notes GROUP BY status

Esportazione e backup sono operazioni diverse

L’esportazione produce dati portabili; il backup conserva schema e dati per il ripristino. Provate il ripristino prima di averne bisogno in un’emergenza.

sqlite -o notes -j data/notes.json -f
sqlite dump data/notes.sql -f
stat data/notes.sql

I database remoti aggiungono credenziali e rete

Ogni engine ha il proprio modello di connessione. Non mettere password reali in script riutilizzabili o pubblici.

db mysql
mysql -c localhost app shop
postgresql -c localhost app shop

Conservalo come script

database-checkpoint.lil apre il database SQLite di prova, ispeziona la tabella e crea un backup senza automatizzare scritture applicative.

#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