Conexion SQLite
Conectarnos e interactuar programaticamente con una base de datos SQLite es bastante sencillo.
Bash
Si necesitas interactuar con SQLite desde la terminal, puedes usar el cliente sqlite3
que se instala junto con SQLite.
sqlite3 base_de_datos.db
sqlite3 base_de_datos.db "SELECT * FROM tabla;"
sqlite3 base_de_datos.db < archivo.sql
Python
En Python podemos usar la librería sqlite3
que viene incluida en la biblioteca estándar:
import sqlite3
import os
# Eliminar la base de datos si existe
if os.path.exists('test.db'):
os.remove('test.db')
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
with open('init.sql', 'r') as f:
sql_script = f.read()
cursor.executescript(sql_script)
cursor.execute("SELECT * FROM usuarios")
for row in cursor.fetchall():
print(row)
conn.close()
Node.js (CommonJS)
Para conectarte a SQLite desde Node.js, puedes usar el paquete sqlite3
:
const sqlite3 = require('sqlite3').verbose();
const fs = require('fs');
const path = require('path');
// Eliminar la base de datos si existe
const dbPath = 'test.db';
if (fs.existsSync(dbPath)) {
fs.unlinkSync(dbPath);
}
// Crear conexión a la base de datos
const db = new sqlite3.Database(dbPath);
// Leer el archivo SQL
const sqlScript = fs.readFileSync('init.sql', 'utf8');
// Ejecutar el script SQL
db.exec(sqlScript, (err) => {
if (err) {
console.error('Error ejecutando el script SQL:', err);
return;
}
// Consultar todos los usuarios
db.all("SELECT * FROM usuarios", (err, rows) => {
if (err) {
console.error('Error en la consulta:', err);
return;
}
// Mostrar los resultados
rows.forEach(row => {
console.log(row);
});
// Cerrar la conexión
db.close((err) => {
if (err) {
console.error('Error cerrando la base de datos:', err);
}
});
});
});
Node.js (ESM)
Al igual que en CommonJS, necesitarás el paquete sqlite3
, pero la sintaxis de importación es diferente:
import sqlite3 from 'sqlite3';
import fs from 'fs';
import path from 'path';
const { verbose } = sqlite3;
const db_sqlite3 = verbose();
// Eliminar la base de datos si existe
const dbPath = 'test.db';
if (fs.existsSync(dbPath)) {
fs.unlinkSync(dbPath);
}
// Crear conexión a la base de datos
const db = new db_sqlite3.Database(dbPath);
// Leer el archivo SQL
const sqlScript = fs.readFileSync('init.sql', 'utf8');
// Ejecutar el script SQL
db.exec(sqlScript, (err) => {
if (err) {
console.error('Error ejecutando el script SQL:', err);
return;
}
// Consultar todos los usuarios
db.all("SELECT * FROM usuarios", (err, rows) => {
if (err) {
console.error('Error en la consulta:', err);
return;
}
// Mostrar los resultados
rows.forEach(row => {
console.log(row);
});
// Cerrar la conexión
db.close((err) => {
if (err) {
console.error('Error cerrando la base de datos:', err);
}
});
});
});
PHP
En php necesitarás instalar la extensión sqlite3
con apt install php-sqlite3
:
<?php
$dbPath = 'test.db';
if (file_exists($dbPath)) {
unlink($dbPath);
}
$db = new SQLite3($dbPath);
$sqlScript = file_get_contents('init.sql');
$db->exec($sqlScript);
$result = $db->query("SELECT * FROM usuarios");
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
print_r($row);
}
$db->close();
?>