Introducción

Parte 8

Bases de datos: inspecciona el estado antes de escribir

El mismo patrón seguro sigue funcionando: elegir destino, inspeccionar estructura, ver datos, cambiar una cosa y verificar.

Una base de datos es estado estructurado

Un archivo muestra su contenido directamente. Una base de datos expone su estado mediante un motor: tablas o colecciones, registros, índices y consultas. No empieces escribiendo. Primero confirma el controlador y la base seleccionada y revisa la estructura existente.

Aquí sirve el mismo principio que con los archivos de configuración: trabaja con el objeto lógico —tabla, fila, clave o documento— y no con la forma física en que se almacenan los datos.

`db` comparte vocabulario, pero el driver importa

db refleja acciones comunes; sqlite, mysql, postgresql, redis y mongodb conservan sus contratos específicos.

install md db sqlite
db
db sqlite
sqlite

SQLite es el terreno seguro para aprender

Es un solo archivo local sin red ni contraseña. Crea la tabla de práctica y comprueba su existencia 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

Primero estructura, después filas

-s muestra campos/tipos y -n una vista previa. Una tabla vacía también es información válida.

sqlite -s notes
sqlite -n notes 10

Las escrituras enfocadas pueden usar JSON

-a y -w aceptan un objeto JSON después de :. Revisa los datos después de cada escritura y trata el borrado como una acción deliberada.

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 queda disponible cuando hace falta

Agregados y consultas complejas pertenecen naturalmente a la forma nativa con :.

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

Exportar y hacer volcado no es lo mismo

La exportación produce datos portables; el volcado conserva esquema y datos para restauración. Prueba el restauración antes de una emergencia.

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

Las bases remotas añaden credenciales y red

Cada motor tiene su conexión. No pongas contraseñas reales en scripts reutilizables o ejemplos públicos.

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

Guárdalo como script

database-checkpoint.lil abre la SQLite de práctica, inspecciona la tabla y crea un volcado sin automatizar escrituras de negocio.

#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