← Nivel 4 – Data pro

Lección 4 de 6 ⏱ 45 minutos Premium

SQLite – una base de datos en un solo archivo

Instala SQLite en Node.js y guarda tu primera fila en una tabla.

Qué es SQLite

SQLite es una base de datos guardada en un solo archivo (por ejemplo, web.db). No hace falta instalar ningún servidor grande – ideal para aprender y proyectos pequeños. Los datos sobreviven a un reinicio de Node.js.

En Node.js usaremos el paquete better-sqlite3:

cd my-server
npm install better-sqlite3

Te lo muestro: una tabla y el primer registro

En server.js (o un database.js nuevo que importes):

const Database = require("better-sqlite3");
const db = new Database("web.db");

// Create the table if it doesn't exist yet
db.exec(`
  CREATE TABLE IF NOT EXISTS vzkazy (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    jmeno TEXT NOT NULL,
    text TEXT NOT NULL,
    vytvoreno TEXT DEFAULT CURRENT_TIMESTAMP
  )
`);

// Insert one row
const vloz = db.prepare("INSERT INTO vzkazy (jmeno, text) VALUES (?, ?)");
vloz.run("Martin", "First message in the database! 🎉");

// Read all rows
const vse = db.prepare("SELECT * FROM vzkazy").all();
console.log(vse);

Ejecuta node server.js (o un script de prueba corto). Verás un array de objetos en la consola. Aparece un archivo llamado web.db en la carpeta de tu proyecto – esa es toda la base de datos.

💡

SQL en pocas palabras: CREATE TABLE = una tabla nueva (como una hoja en Excel). INSERT = añadir una fila. SELECT = leer datos. Los signos de interrogación ? en prepare protegen contra la SQL injection – ¡nunca metas texto del usuario directamente en una cadena de consulta!

Ahora tú 💪

  1. Instala better-sqlite3 en la carpeta de tu servidor.
  2. Crea una tabla vzkazy siguiendo el ejemplo (columnas: id, jmeno, text, vytvoreno).
  3. Inserta 3 mensajes de prueba con INSERT.
  4. Para el script, ejecútalo otra vez y haz un SELECT de nuevo – ¿los datos siguen ahí?
  5. Añade web.db a .gitignore (en producción, cada servidor tiene su propia base de datos; a veces se exporta por separado).

Compruébalo: El archivo web.db existe y los datos permanecen tras un reinicio. En la siguiente lección conectaremos todo el libro de visitas a través de una API.

Lo que te llevas de esta lección