Introduction

Partie 8

Bases de données : inspecter l’état avant d’écrire

Choisir la cible, inspecter le schéma, voir les données, changer une chose et vérifier reste le meilleur rythme.

Une base est un état structuré

Un fichier expose directement son contenu. Une base de données présente son état par l’intermédiaire d’un moteur : tables ou collections, enregistrements, index et requêtes. Ne commencez pas par écrire. Vérifiez d’abord le pilote et la base sélectionnée, puis observez la structure existante.

Le même principe que pour les fichiers de configuration s’applique ici : travaillez avec l’objet logique — table, ligne, clé ou document — plutôt qu’avec la manière dont les données sont stockées physiquement.

`db` partage un vocabulaire, le driver reste essentiel

db reflète les opérations communes; les commandes directes conservent la sémantique propre à chaque moteur.

install md db sqlite
db
db sqlite
sqlite

SQLite est le terrain d’exercice le plus sûr

Un seul fichier local, sans réseau ni mot de passe : créez la table et vérifiez-la avec -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

Structure d’abord, lignes ensuite

-s montre champs/types, -n prévisualise les lignes. Une table vide est déjà une information utile.

sqlite -s notes
sqlite -n notes 10

Les écritures ciblées peuvent utiliser JSON

-a et -w prennent un objet JSON après :. Contrôlez les données après chaque écriture; la suppression reste délibérée.

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

Le SQL natif reste disponible

Agrégations et requêtes spécifiques appartiennent naturellement à la forme native après :.

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

Exportation et sauvegarde répondent à des besoins différents

L’exportation produit des données portables ; la sauvegarde vise à restaurer le schéma et les données. Testez toujours la restauration avant d’en avoir réellement besoin.

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

Les bases distantes ajoutent identifiants et réseau

Chaque moteur possède son modèle de connexion. Ne mettez jamais de vrais mots de passe dans un script réutilisable ou public.

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

Conservez ceci comme script

database-checkpoint.lil ouvre la base SQLite d’exercice, inspecte la table et crée une sauvegarde sans automatiser d’écritures métier.

#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