Guía completa de SQLite en Debian 13: instalación, gestión y herramientas gráficas.

Anuncios
Contenido del articulo ocultar

SQLite en Debian 13 — Guía Completa

SQLite es una base de datos ligera, rápida y auto-contenida que viene integrada en la mayoría de los sistemas operativos modernos. En Debian 13 “Trixie”, instalarla y comenzar a trabajar con ella es cuestión de minutos. En este tutorial aprenderás desde cero a dominar SQLite tanto desde la terminal como desde una interfaz gráfica (DB Browser for SQLite), con ejemplos, buenas prácticas y optimizaciones reales.


Presentación y objetivos

Este tutorial está pensado para usuarios y desarrolladores que deseen dominar SQLite en Debian 13, abarcando desde su instalación, comandos esenciales y configuración, hasta consejos de seguridad, rendimiento y migraciones.

  • Aprender a instalar y configurar SQLite en Debian 13.
  • Conocer los comandos fundamentales del shell sqlite3.
  • Trabajar con bases de datos, tablas, consultas y transacciones.
  • Explorar DB Browser for SQLite como herramienta visual.
  • Aplicar buenas prácticas en modelado y rendimiento.

0.1 ¿Qué aprenderás?

  • Crear, consultar y gestionar bases de datos SQLite desde la terminal.
  • Usar herramientas gráficas para manipular datos sin escribir SQL manualmente.
  • Entender los PRAGMA más importantes para optimizar rendimiento y consistencia.
  • Realizar copias de seguridad seguras y migraciones entre sistemas.

0.2 Requisitos previos

Para seguir este tutorial, necesitas:

  • Un sistema operativo Debian 13 Trixie actualizado.
  • Acceso a una terminal con privilegios sudo.
  • Conocimientos básicos de comandos apt y estructura de archivos Linux.

0.3 Público objetivo y casos de uso

Este contenido está orientado a:

  • Estudiantes y autodidactas de programación o administración Linux.
  • Desarrolladores que necesiten una base de datos embebida o ligera.
  • Administradores que deseen auditar o analizar datos locales rápidamente.
  • Proyectos de escritorio, IoT o scripts automatizados que no requieren un motor SQL complejo.

1. Introducción a SQLite

1.1 ¿Qué es SQLite?

SQLite es una biblioteca en C que implementa un motor de base de datos SQL sin servidor, totalmente contenido en un único archivo. A diferencia de MySQL o PostgreSQL, no requiere demonios en segundo plano ni configuración previa: cada base de datos es simplemente un archivo .db que puede moverse, copiarse o versionarse fácilmente.

1.2 Ventajas y limitaciones

Ventajas y limitaciones de SQLite
VentajasLimitaciones
Instalación mínima: un solo binario (sqlite3).No está pensado para sistemas con miles de conexiones concurrentes.
Compatible con la mayoría del estándar SQL-92.No soporta usuarios ni permisos granulares dentro del motor.
Soporta transacciones ACID completas.Requiere control externo para backups y replicación.
Extremadamente portátil: un archivo, multiplataforma.No tiene procedimientos almacenados complejos.

1.3 Casos de uso reales

  • Android: cada aplicación usa una base SQLite para su almacenamiento local.
  • Firefox y Chrome: almacenan historial, cookies y configuración.
  • Aplicaciones Linux: GNOME, Kdenlive, LibreOffice, etc.
  • IoT y Raspberry Pi: ideal para sensores y dispositivos offline.

1.4 Arquitectura

SQLite se compone de un motor SQL embebido que lee y escribe directamente en archivos de disco. Todo el procesamiento ocurre en el mismo proceso del programa cliente, lo que reduce la latencia y simplifica la gestión.

Dato curioso: SQLite no usa sockets ni puertos TCP. Trabaja directamente con archivos y bloqueos de sistema (fcntl), lo que la hace más simple y segura en entornos locales.

2. Características clave de SQLite

2.1 Cumplimiento SQL

SQLite implementa gran parte del estándar SQL-92 e incluye soporte para subconsultas, vistas, joins, triggers e índices. A pesar de su ligereza, es una base de datos relacional completa.

2.2 Transacciones ACID

SQLite es totalmente ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad), incluso en sistemas embebidos. Cada escritura se asegura con journaling, protegiendo la integridad ante fallos o cortes eléctricos.

2.3 Tipado por afinidad

El sistema de tipos de SQLite no es estricto. En lugar de tipos fijos, utiliza un modelo de afinidad, donde los valores se almacenan según el tipo declarado de la columna, pero pueden aceptar otros tipos compatibles.

2.4 Vistas, índices y triggers

SQLite soporta la creación de vistas personalizadas, índices simples o compuestos y triggers para ejecutar acciones automáticas ante inserciones, actualizaciones o eliminaciones.

CREATE VIEW usuarios_mayores AS
SELECT nombre, edad FROM usuarios WHERE edad >= 18;

CREATE INDEX idx_usuarios_nombre ON usuarios(nombre);

CREATE TRIGGER log_inserciones
AFTER INSERT ON usuarios
BEGIN
  INSERT INTO auditoria (accion, fecha)
  VALUES ('Inserción', datetime('now'));
END;

2.5 Soporte Unicode y portabilidad

SQLite almacena texto en UTF-8 o UTF-16, compatible con cualquier idioma. Además, al ser un único archivo binario, puede moverse entre Linux, Windows o macOS sin perder compatibilidad ni estructura.


3. Instalación en Debian 13

3.1 Actualizar índices de paquetes

Antes de instalar, actualiza la lista de paquetes del sistema:

sudo apt update

3.2 Instalar el intérprete CLI

Instala el paquete principal de SQLite con:

sudo apt install sqlite3

Este comando instalará el binario sqlite3 y sus dependencias.

3.3 Verificar la instalación

sqlite3 --version

Deberías ver una salida similar a:

3.45.2 2025-02-10 12:15:14 ...

3.4 Paquetes relacionados y páginas de manual

Archivos instalados por SQLite
RutaDescripción
/usr/bin/sqlite3Ejecutable principal del intérprete CLI.
/usr/lib/x86_64-linux-gnu/libsqlite3.soBiblioteca compartida usada por otras apps.
/usr/share/man/man1/sqlite3.1.gzPágina del manual (consulta con man sqlite3).
Tip: Puedes probar el entorno con sqlite3 prueba.db para abrir una base nueva. Si no existe, SQLite la creará automáticamente.

4. Primeros pasos desde la terminal (sqlite3)

El corazón de SQLite es su intérprete de comandos sqlite3. Desde aquí podrás crear bases de datos, ejecutar consultas SQL, importar/exportar datos y realizar copias de seguridad. Todo ello sin depender de un servidor ni configuración adicional.


4.1 Crear una base de datos (.db)

Para crear una nueva base de datos, simplemente escribe en la terminal:

sqlite3 mi_base.db

Esto abrirá el shell interactivo de SQLite con el prompt:

sqlite>

Si el archivo mi_base.db no existía, se creará automáticamente en el directorio actual. Puedes cerrar el shell en cualquier momento con:

.quit
Tip: Usa rutas absolutas si quieres guardar la base en una carpeta específica, por ejemplo: sqlite3 /home/javier/sqlite/mi_base.db.

4.2 Entrar y salir del shell de sqlite3

Una vez dentro, el prompt cambiará a sqlite>. Puedes ejecutar comandos SQL normales y también comandos internos del intérprete (los que comienzan con un punto “.”).

Comandos básicos del shell sqlite3
ComandoDescripción
.helpMuestra todos los comandos internos disponibles.
.databasesLista las bases de datos abiertas (por defecto, una).
.tablesMuestra las tablas existentes en la base.
.schema [tabla]Muestra la definición SQL de una tabla o de toda la base.
.mode columnActiva el formato de salida en columnas legibles.
.headers onMuestra los nombres de columnas en los resultados.
.quitSalir del shell (también .exit o Ctrl+D).
Recomendado: Antes de listar o consultar datos, activa siempre .headers on y .mode column para visualizar las tablas correctamente.

4.3 Crear tablas, insertar datos y consultar

Crear una tabla de ejemplo

CREATE TABLE usuarios (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  nombre TEXT NOT NULL,
  edad INTEGER,
  correo TEXT
);

Verifica que la tabla se creó correctamente:

.tables

Para ver su estructura completa:

.schema usuarios

Insertar datos

INSERT INTO usuarios (nombre, edad, correo)
VALUES ('Ana', 30, 'ana@example.com');

INSERT INTO usuarios (nombre, edad, correo)
VALUES ('Juan', 25, 'juan@example.com');

INSERT INTO usuarios (nombre, edad, correo)
VALUES ('Lucía', 35, 'lucia@example.com');

Consultar datos

.headers on
.mode column
SELECT * FROM usuarios;

Salida esperada:

id  nombre  edad  correo
--  ------- ----  -----------------
1   Ana     30    ana@example.com
2   Juan    25    juan@example.com
3   Lucía   35    lucia@example.com

Filtrar y ordenar

SELECT nombre, edad
FROM usuarios
WHERE edad >= 30
ORDER BY edad DESC;
Consejo: SQLite no diferencia entre mayúsculas y minúsculas en palabras clave SQL. Tanto select como SELECT son válidos.

4.4 Actualizar y eliminar registros

Actualizar datos

UPDATE usuarios
SET edad = 31
WHERE nombre = 'Ana';

Eliminar registros

DELETE FROM usuarios
WHERE id = 2;

Confirma el resultado:

SELECT * FROM usuarios;

Eliminar una tabla completa

DROP TABLE IF EXISTS usuarios;
Atención: El comando DROP TABLE elimina toda la estructura y los datos de la tabla. No se puede deshacer.

4.5 Importar y exportar CSV

SQLite incluye soporte integrado para leer y escribir archivos CSV, lo que resulta útil para intercambiar datos con hojas de cálculo o sistemas externos.

Importar CSV

Supongamos que tienes un archivo usuarios.csv con el siguiente contenido:

nombre,edad,correo
Pedro,40,pedro@example.com
Laura,28,laura@example.com

Importa el archivo con los comandos:

.mode csv
.import usuarios.csv usuarios

SQLite leerá el archivo y agregará los registros automáticamente a la tabla usuarios.

Exportar CSV

Para exportar el contenido de una tabla a un archivo CSV:

.headers on
.mode csv
.output export_usuarios.csv
SELECT * FROM usuarios;
.output stdout

Esto generará un archivo export_usuarios.csv en tu carpeta actual con el contenido de la tabla.

Opciones del modo .mode
ModoDescripción
listSalida en formato de lista, separada por “|”.
columnFormato tabulado y legible (ideal para consola).
csvFormato CSV compatible con Excel, LibreOffice, etc.
tabsCampos separados por tabulaciones.
htmlSalida como tabla HTML (útil para informes web).

4.6 Redirección de salida y ejecución de scripts

Guardar resultados en un archivo

.output resultados.txt
SELECT nombre, edad FROM usuarios;
.output stdout

El resultado se guardará en el archivo resultados.txt.

Ejecutar scripts SQL externos

También puedes ejecutar archivos SQL completos sin escribir cada comando manualmente. Por ejemplo, si tienes un archivo estructura.sql:

CREATE TABLE productos (
  id INTEGER PRIMARY KEY,
  nombre TEXT,
  precio REAL
);

INSERT INTO productos (nombre, precio)
VALUES ('Teclado', 25.50),
       ('Ratón', 18.90);

Ejecuta el script con:

.read estructura.sql

Y luego comprueba las tablas:

.tables
Consejo: Los scripts .sql son ideales para automatizar configuraciones o migraciones. Puedes crear plantillas y ejecutarlas en diferentes proyectos fácilmente.

4.7 Resumen de comandos útiles

Resumen de comandos sqlite3
ComandoFunción
.tablesLista todas las tablas en la base de datos actual.
.schemaMuestra el código SQL que define una tabla.
.headers onActiva los encabezados de columna en los resultados.
.mode columnUsa formato de columnas legibles.
.output archivo.txtRedirige la salida a un archivo.
.read script.sqlEjecuta un archivo SQL externo.
.backup backup.dbCrea una copia de seguridad completa.
.quitSale del intérprete SQLite.

Con estos comandos básicos dominarás la línea de comandos de SQLite y podrás gestionar tus bases de datos sin depender de interfaces gráficas. Es una herramienta ligera, poderosa y perfecta para automatizar tareas en Debian 13.

Próxima parte: Modelado, claves primarias, PRAGMAs, rendimiento y DB Browser for SQLite.

5. Modelado y buenas prácticas de esquema

El diseño correcto de la estructura de tu base de datos es esencial para mantener la integridad, el rendimiento y la escalabilidad. SQLite no impone tantas restricciones como otros motores, por lo que el modelo depende en gran medida de tu disciplina como desarrollador.

5.1 Claves primarias e integridad referencial

Siempre define una PRIMARY KEY en cada tabla. SQLite utiliza un identificador especial llamado ROWID por defecto, pero es recomendable declararlo explícitamente para mejorar la legibilidad y las relaciones.

CREATE TABLE clientes (
  id INTEGER PRIMARY KEY,
  nombre TEXT NOT NULL,
  telefono TEXT,
  email TEXT UNIQUE
);

Para relaciones entre tablas, usa FOREIGN KEYS y activa la integridad referencial:

PRAGMA foreign_keys = ON;

CREATE TABLE pedidos (
  id INTEGER PRIMARY KEY,
  cliente_id INTEGER,
  fecha TEXT,
  total REAL,
  FOREIGN KEY (cliente_id) REFERENCES clientes(id)
);
Consejo: SQLite no activa las claves foráneas por defecto. Asegúrate de ejecutar PRAGMA foreign_keys = ON; al inicio de tu conexión o script.

5.2 Índices: cuándo y cómo crearlos

Los índices aceleran las consultas que usan WHERE o JOIN sobre columnas frecuentes, pero también consumen espacio y ralentizan las escrituras. Úsalos con criterio.

CREATE INDEX idx_clientes_nombre ON clientes(nombre);
CREATE INDEX idx_pedidos_fecha ON pedidos(fecha);

Puedes inspeccionar el uso de índices con:

EXPLAIN QUERY PLAN
SELECT * FROM clientes WHERE nombre = 'Ana';

5.3 Normalización ligera y convenciones

  • Usa nombres en snake_case y en singular: usuario, producto.
  • Evita redundancias de datos innecesarias.
  • Usa INTEGER para claves y TEXT para cadenas.
  • Define NOT NULL y DEFAULT siempre que sea posible.

5.4 Tipado por afinidad

Tipos de datos y afinidad en SQLite
Tipo declaradoAfinidadEjemplo
INTEGERNumérico entero42
REALNumérico decimal3.1416
TEXTCadena de texto'Debian'
BLOBBinarioArchivos, imágenes, etc.
NULLSin valor definidoNULL
Dato curioso: Puedes insertar texto en una columna INTEGER y SQLite lo aceptará. Aun así, define los tipos correctamente por claridad y rendimiento.

6. Rendimiento y confiabilidad

6.1 Transacciones

Agrupar operaciones dentro de transacciones acelera las escrituras y garantiza la coherencia del conjunto de datos:

BEGIN TRANSACTION;
INSERT INTO pedidos (cliente_id, fecha, total)
VALUES (1, '2025-03-10', 59.90);
UPDATE clientes SET telefono = '+34 612 345 678' WHERE id = 1;
COMMIT;

Si algo falla, usa ROLLBACK; para revertir los cambios.

6.2 PRAGMAs esenciales

Los PRAGMAs son configuraciones internas que ajustan el comportamiento del motor de SQLite. Puedes consultarlos o modificarlos según tu entorno.

PRAGMAs más utilizados
PRAGMADescripciónValores recomendados
foreign_keysActiva la integridad referencial.ON
journal_modeDefine el modo de journaling.WAL (Write-Ahead Log)
synchronousControla cuándo se sincroniza con disco.FULL o NORMAL
cache_sizeDetermina el tamaño del caché interno.Depende del entorno (por defecto 2000)
PRAGMA foreign_keys = ON;
PRAGMA journal_mode = WAL;
PRAGMA synchronous = FULL;
Importante: Usa WAL para mejorar la concurrencia de lectura/escritura y synchronous=FULL para garantizar la integridad ante cortes de energía.

6.3 EXPLAIN QUERY PLAN

Esta sentencia permite analizar cómo se ejecutará una consulta:

EXPLAIN QUERY PLAN
SELECT * FROM pedidos WHERE cliente_id = 1;

Si ves la palabra SCAN sin USING INDEX, significa que la consulta recorre toda la tabla y puede mejorarse con un índice.

6.4 Escrituras masivas

Para insertar miles de filas, agrúpalas en una única transacción:

BEGIN;
INSERT INTO registros (dato) VALUES ('A');
INSERT INTO registros (dato) VALUES ('B');
...
COMMIT;

Esto reduce drásticamente el tiempo de escritura, ya que se evita sincronizar el disco tras cada inserción.

6.5 Vacuum y mantenimiento

SQLite no libera automáticamente el espacio de las filas eliminadas. Usa VACUUM; para compactar la base de datos:

VACUUM;

También puedes reindexar todas las tablas con:

REINDEX;

8. Seguridad y buenas prácticas de despliegue

8.1 Permisos de archivos y rutas seguras

SQLite guarda toda la información en un solo archivo. Por ello, protege los permisos correctamente:

chmod 600 /home/javier/sqlite/produccion.db
chown javier:javier /home/javier/sqlite/produccion.db

8.2 Evitar exposición directa del .db

Nunca coloques el archivo .db dentro del directorio público de un servidor web (/var/www/html o similar).

Riesgo: Si el archivo está en el directorio público, un usuario podría descargarlo directamente escribiendo su ruta completa en el navegador.

8.3 Cifrado y protección adicional

SQLite no incluye cifrado por defecto, pero existen extensiones como SQLCipher que añaden encriptación AES-256 transparente.

-- En SQLCipher:
PRAGMA key = 'mi_clave_segura';

Otra alternativa es usar particiones cifradas con LUKS o herramientas como gocryptfs.

8.4 Integridad y recuperación

Verifica la integridad de tu base periódicamente con:

PRAGMA integrity_check;

Y repara inconsistencias con una copia limpia si es necesario. También puedes automatizar backups con cron:

sqlite3 produccion.db ".backup '/backups/produccion_$(date +%F).db'"

9. Herramienta gráfica: DB Browser for SQLite

9.1 Instalación

En Debian 13, DB Browser está disponible en los repositorios oficiales:

sudo apt install sqlitebrowser

9.2 Interfaz principal

Al abrir la aplicación verás varias pestañas clave:

Pestañas de DB Browser
PestañaFunción
Database StructureMuestra las tablas, vistas e índices.
Browse DataPermite explorar y editar registros.
Execute SQLEjecuta consultas manuales.
Edit PragmasConfigura PRAGMAs desde interfaz.

9.3 Crear y editar tablas

Puedes crear nuevas tablas desde el menú “New Table”, definiendo nombres de columna y tipos de dato. Al finalizar, haz clic en Write Changes para guardar los cambios en disco.

9.4 Importar y exportar datos

DB Browser facilita la importación y exportación en múltiples formatos:

  • CSV (valores separados por coma)
  • SQL (script de recreación)
  • JSON y XML

Para importar: File → Import → Table from CSV. Para exportar: File → Export → Table to SQL File.

9.5 Ejecutar scripts SQL

En la pestaña Execute SQL puedes ejecutar bloques de código o abrir archivos completos:

CREATE TABLE productos (
  id INTEGER PRIMARY KEY,
  nombre TEXT,
  precio REAL
);

INSERT INTO productos (nombre, precio)
VALUES ('Monitor 24"', 159.99),
       ('Teclado mecánico', 79.90);

Después, pulsa Execute All para ejecutar todo el script.

Consejo: No olvides hacer clic en Write Changes antes de cerrar DB Browser. Si no lo haces, los cambios se perderán.

11. Casos prácticos

Veamos algunos ejemplos útiles de uso real en Debian 13, donde SQLite brilla por su simplicidad y rendimiento local.


11.1 Mini CRUD de usuarios

Este ejemplo crea una tabla de usuarios, agrega datos, actualiza registros y los elimina.

-- Crear tabla
CREATE TABLE usuarios (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  nombre TEXT NOT NULL,
  correo TEXT UNIQUE,
  edad INTEGER
);

-- Insertar registros
INSERT INTO usuarios (nombre, correo, edad)
VALUES ('María', 'maria@example.com', 28),
       ('Luis', 'luis@example.com', 34);

-- Consultar
SELECT * FROM usuarios;

-- Actualizar
UPDATE usuarios SET edad = 29 WHERE nombre = 'María';

-- Eliminar
DELETE FROM usuarios WHERE id = 2;
Consejo: Si ejecutas este CRUD dentro de una transacción BEGIN ... COMMIT;, aseguras la atomicidad de las operaciones.

11.2 Registro de logs o telemetría local

SQLite es perfecto para guardar eventos o métricas en dispositivos offline.

CREATE TABLE logs (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  fecha TEXT DEFAULT (datetime('now')),
  nivel TEXT,
  mensaje TEXT
);

INSERT INTO logs (nivel, mensaje)
VALUES ('INFO', 'Sistema iniciado'),
       ('WARNING', 'Uso de CPU alto'),
       ('ERROR', 'Proceso detenido');

Puedes ver los últimos 10 registros con:

SELECT * FROM logs ORDER BY fecha DESC LIMIT 10;

11.3 Catálogo o inventario simple con índices

CREATE TABLE inventario (
  id INTEGER PRIMARY KEY,
  producto TEXT NOT NULL,
  stock INTEGER,
  precio REAL
);

CREATE INDEX idx_inventario_producto ON inventario(producto);

INSERT INTO inventario (producto, stock, precio)
VALUES ('Portátil Lenovo', 10, 999.90),
       ('Monitor 27"', 7, 189.50),
       ('Teclado mecánico', 15, 79.99);

SELECT producto, stock FROM inventario WHERE stock < 10;
Tip: Los índices en campos como producto o stock aceleran las consultas, especialmente cuando crece el volumen de registros.

12. Troubleshooting (Errores comunes)

SQLite es muy estable, pero algunos errores son frecuentes. Aquí tienes una guía rápida de diagnóstico.

Errores frecuentes y soluciones
ErrorCausaSolución
no such table: ...Intentas consultar una tabla inexistente o en la base equivocada.Ejecuta .tables o revisa el archivo .db correcto.
database is lockedLa base está en uso por otro proceso o DB Browser aún no liberó el archivo.Cierra instancias abiertas. Usa PRAGMA journal_mode=WAL; para concurrencia.
UNIQUE constraint failedIntentas insertar valores duplicados en una columna UNIQUE.Verifica claves únicas con SELECT DISTINCT columna.
Problemas con CSVDelimitadores o codificación incorrecta (UTF-8).Guarda el CSV en UTF-8 y usa .mode csv antes de importar.
malformed database schemaModificación manual o fallo en migración.Exporta a SQL (.dump) y reconstruye la base.

12.5 Diferencias por PRAGMAs

Si una consulta no se comporta igual entre entornos, revisa tus PRAGMA. El modo WAL, la sincronización y las claves foráneas pueden alterar resultados.

PRAGMA foreign_keys;
PRAGMA journal_mode;
PRAGMA synchronous;

13. Checklist final de producción

Antes de usar SQLite en entornos reales o compartir tu base de datos, repasa estos puntos clave:

  • Integridad activada: PRAGMA foreign_keys = ON;
  • Modo WAL habilitado para concurrencia y rendimiento.
  • Backups verificados con .backup o sqlite3 ".dump".
  • Permisos 600 en el archivo .db (solo propietario).
  • Ruta segura fuera del directorio público web.
  • Vacuum ejecutado tras grandes eliminaciones.
  • PRAGMA integrity_check; pasado sin errores.

13.4 Automatización de copias

Puedes programar un cron diario para guardar copias automáticas:

0 3 * * * sqlite3 /home/javier/sqlite/produccion.db \
".backup '/home/javier/backups/produccion_$(date +\%F).db'"
Consejo: Conserva al menos 7 días de copias y verifica que las copias estén accesibles antes de eliminar las antiguas.

14. Resumen y siguientes pasos

14.1 Recapitulación

SQLite en Debian 13 ofrece una solución de base de datos rápida, ligera y sin mantenimiento. Su filosofía “cero configuración” lo convierte en un aliado perfecto para desarrolladores, docentes y entornos embebidos.

En este curso hemos aprendido a:

  • Instalar y usar sqlite3 desde la terminal.
  • Crear, consultar e importar datos fácilmente.
  • Optimizar el rendimiento mediante índices, transacciones y PRAGMAs.
  • Usar DB Browser for SQLite para administración visual.
  • Garantizar seguridad, backups y despliegues fiables.

14.2 Cuándo usar SQLite

SQLite vs motores cliente-servidor
SituaciónSQLiteMySQL / PostgreSQL
Prototipos, desarrollo local✅ IdealSobrecalificado
Aplicaciones móviles o IoT✅ PerfectoNo aplicable
Servidor multiusuario concurrente❌ Limitado✅ Recomendado
Administración sin servidor✅ Sin configuración❌ Requiere servicio activo

14.3 Recursos oficiales y documentación


A. Apéndices

A.1 Hoja de comandos del shell sqlite3

Comandos más usados
AcciónComando
Listar tablas.tables
Ver estructura.schema <tabla>
Resultados legibles.headers on + .mode column
Importar CSV.mode csv + .import fichero.csv tabla
Backup.backup copia.db
Salir.quit

A.2 Plantillas SQL básicas

CREATE TABLE ejemplo (
  id INTEGER PRIMARY KEY,
  nombre TEXT NOT NULL,
  fecha TEXT DEFAULT (date('now'))
);

INSERT INTO ejemplo (nombre) VALUES ('Entrada 1');
SELECT * FROM ejemplo;

A.3 Script de backup automático

#!/bin/bash
DB="/home/javier/sqlite/produccion.db"
DEST="/home/javier/backups"
mkdir -p "$DEST"
sqlite3 "$DB" ".backup '$DEST/produccion_$(date +%F).db'"
echo "Backup completado en $(date)"

A.4 Bibliografía y enlaces

Conclusión final: SQLite representa la elegancia de lo simple: un solo archivo, toda una base de datos. En Debian 13 es estable, moderno y totalmente integrado. Ideal para tus proyectos personales, académicos o de desarrollo local.
Nuestra puntuación
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)
Anuncios
Comparte en las redes sociales...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos
ResponsableJavier Cachón Garrido +info...
FinalidadGestionar y moderar tus comentarios. +info...
LegitimaciónConsentimiento del interesado. +info...
DestinatariosAutomattic Inc., EEUU para filtrar el spam. +info...
DerechosAcceder, rectificar y cancelar los datos, así como otros derechos. +info...
Información adicionalPuedes consultar la información adicional y detallada sobre protección de datos en nuestra página de política de privacidad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Traducir »
Scroll al inicio

Descubre más desde javiercachon.com

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo