SQLite3 es una base de datos basada en archivo, sin servidor y perfecta para proyectos ligeros, prototipos o como almacenamiento embebido en aplicaciones de escritorio, herramientas CLI o backends pequeños. Un solo archivo .db contiene toda la base de datos y se puede versionar o mover fácilmente.

Instalacion y panel grafico: para usar SQLite3 en Node.js instala los paquetes necesarios con npm y una herramienta de administracion web con el comando npm install sqlite3 sqlite3-admin. Para ver la base de datos visualmente ejecuta npx sqlite3-admin app.db o cambia app.db por el nombre de tu archivo.

Conexion basica: crea un archivo db.js con el siguiente codigo de ejemplo para abrir o crear el archivo app.db

const sqlite3 = require(`sqlite3`).verbose(); const db = new sqlite3.Database(`./app.db`);

Crea una tabla: ejemplo para crear una tabla users si no existe

db.run(`CREATE TABLE IF NOT EXISTS users( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT )`, (err)=>{ if(err) console.log(`Error: `, err); else console.log(`Tabla creada`); });

Insercion de datos: siempre usa placeholders para evitar inyeccion SQL. Ejemplo:

const name = `John`; const email = `johndoe@example.com`; db.run(`INSERT INTO users(name, email) VALUES(?, ?)`, [name, email], function(err){ if(err) console.log(`Error: `, err); console.log(`Inserted row ID: `, this.lastID); });

Lectura de datos: para obtener varias filas usa db.all y para una sola fila usa db.get

db.all(`SELECT * FROM users`, [], (err, rows)=>{ if(err) throw err; rows.forEach(row=>{ console.log(row.id, row.name, row.email); }); });

Actualizacion: ejemplo para actualizar el nombre de un usuario por id

db.run(`UPDATE users SET name=? WHERE id=?`, [`Mike Tyson`, 1], function(err){ if(err) throw err; console.log(`Rows changed: `, this.changes); });

Eliminacion: ejemplo para borrar por id

db.run(`DELETE FROM users WHERE id=?`, [1], function(err){ if(err) throw err; console.log(`Rows deleted: `, this.changes); });

Cerrar la base de datos: usa db.close() cuando la aplicacion vaya a terminar. Buena practica: cerrar solo al salir de la app para evitar errores de concurrencia.

Operaciones en serie: cuando necesitas garantizar el orden de ejecucion usa db.serialize para ejecutar las consultas una a una

db.serialize(()=>{ db.run(`CREATE TABLE IF NOT EXISTS posts(id INTEGER PRIMARY KEY, title TEXT)`); db.run(`INSERT INTO posts(title) VALUES(?)`, [`Hello world`]); db.all(`SELECT * FROM posts`, [], (err, rows)=>{ console.log(rows); }); });

Resumen de buenas practicas: usar placeholders para prevenir inyeccion SQL, controlar errores en callbacks, cerrar la conexion al finalizar, y usar serialize cuando el orden de ejecucion importa. SQLite3 es ideal para prototipos, aplicaciones a medida y para integrarlo en soluciones multiplataforma donde no se necesita un servidor de base de datos completo.

Sobre Q2BSTUDIO: en Q2BSTUDIO somos una empresa de desarrollo de software a medida y aplicaciones a medida especializada en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y automatizacion de procesos. Podemos integrar SQLite3 en proyectos más amplios o migrar datos a soluciones gestionadas en la nube. Si buscas una aplicacion personalizada consulta nuestro servicio de Desarrollo de aplicaciones a medida y para soluciones avanzadas de IA visita nuestra pagina de IA para empresas. Incorporamos agentes IA, soluciones de Power BI y estrategias de ciberseguridad para entregar proyectos robustos y escalables.

Palabras clave: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.