Ejercicio: SQLite y PostgreSQL en la práctica
Objetivo
Crear una base SQLite desde la terminal, consultarla con los comandos de punto y adaptar un esquema a PostgreSQL.
Cómo se trabaja
Necesitas SQLite instalado (sqlite.org/download) y, para el reto, Node.js. Guarda el esquema y los datos de la tienda (los bloques de las lecciones 1 y 5) en un archivo tienda.sql.
Pasos
Marca cada paso a medida que lo completes. Tu avance se guarda en este navegador.
💡 Pista 1: abrir y cargar
Todo ocurre dentro de sqlite3. Los comandos de punto no llevan ;.
💡 Pista 2: el reto de Node.js
Instala el paquete con npm install better-sqlite3, usa db.prepare(...).all(100) y escribe "type": "module" en package.json para poder usar import.
✅ Ver una solución posible
Intenta resolverlo antes de mirar. Tu versión puede ser distinta y también correcta.
.read tienda.sql
.tables
.headers on
.mode column
SELECT nombre, precio FROM productos WHERE precio > 100 ORDER BY precio;
.schema productos
.quit
Resultado esperado
| nombre | precio |
|---|---|
| Teclado | 120.00 |
| Webcam | 150.00 |
| Monitor FHD | 650.00 |
| Monitor 4K | 899.00 |
CREATE TABLE productos (
id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
nombre TEXT NOT NULL,
categoria TEXT NOT NULL,
precio NUMERIC NOT NULL,
stock INTEGER NOT NULL DEFAULT 0
);
Si quieres cargar los ids a mano (como en nuestros datos), usa GENERATED BY DEFAULT AS IDENTITY o inserta sin id.
import Database from 'better-sqlite3';
const db = new Database('tienda.db');
const filas = db.prepare('SELECT nombre, precio FROM productos WHERE precio > ? ORDER BY precio').all(100);
console.table(filas);
💡 🏁 Reto extra (opcional)
Instala PostgreSQL, crea la base tienda, un rol propio y carga el esquema adaptado con \i. Después conecta pg con una variable de entorno DATABASE_URL.