Command Line For SQLite3
SQLite incluye sqlite3, una herramienta de línea de comandos que permite interactuar directamente con bases de datos SQLite y ejecutar sentencias SQL. Es ideal para pruebas rápidas, consultas y tareas de administración sin necesidad de una interfaz gráfica.
Instalación
Esta herramienta de línea de comandos (CLI) está disponible para Windows, macOS y Linux. A continuación, revisa los siguientes métodos de instalación según el sistema operativo.
- Ingresa al sitio oficial: https://www.sqlite.org/download.html
- Descarga el archivo sqlite-tools correspondiente a la arquitectura de tu sistema (32 o 64 bits), por ejemplo:
sqlite-tools-win32-x86. - Extrae el archivo
.zipen una carpeta, por ejemploC:\sqlite. - Abre la terminal ( símbolo del sistema o PowerShell ), navega a esa carpeta y ejecuta
sqlite3para iniciar el programa.
Opcional: Agrega la ruta de SQLite a las variables de entorno para poder usarlo desde cualquier ubicación del sistema.
Puedes instalar SQLite fácilmente usando Homebrew:
1
brew install sqliteEn la mayoría de las distribuciones Linux, SQLite está disponible en los repositorios oficiales:
1 2
sudo apt update sudo apt install sqlite3
Después, solo escribe sqlite3 en la terminal para iniciar una sesión en memoria.
Configuración sqlite3 (Ubuntu)
¿Qué podemos hacer con la línea de comandos de SQLite3?
Esta sección describe las operaciones más comunes al trabajar con SQLite desde la línea de comandos, siguiendo el flujo natural de creación, modificación y gestión de una base de datos.
Ejecuta sqlite3 mi_base.db para crear o abrir una base de datos SQLite desde la terminal.
1
sqlite3 mi_base.db
El comando anterior abre una sesión interactiva.
1
2
3
SQLite version 3.40.1 2022-12-28 14:03:47
Enter ".help" for usage hints.
sqlite>
Si la base de datos no existe, se creará el archivo de base de datos una vez que tengamos como mínimo creada una tabla.
Las tablas definen la estructura donde se almacenan los datos. Al inicio se crea una tabla simple que luego puede ampliarse.
1
2
3
4
CREATE TABLE usuarios (
id INTEGER,
username TEXT
);
A medida que cambian los requisitos, se pueden agregar nuevos campos sin eliminar la tabla existente utilizando ALTER TABLE.
1
2
3
ALTER TABLE usuarios ADD COLUMN email TEXT;
ALTER TABLE usuarios ADD COLUMN password TEXT;
ALTER TABLE usuarios ADD COLUMN created_at TEXT;
Una vez creada la estructura, es posible insertar registros y consultarlos utilizando sentencias SQL.
1
2
3
4
INSERT INTO usuarios (id, username)
VALUES (1, 'admin');
SELECT * FROM usuarios;
SQLite permite importar y exportar datos, por ejemplo en formato CSV, lo que facilita el intercambio de información con otras herramientas.
1
2
.mode csv
.import usuarios.csv usuarios
1
2
3
4
5
.headers on
.mode csv
.output usuarios_export.csv
SELECT * FROM usuarios;
.output stdout
Los archivos .sql permiten ejecutar múltiples instrucciones en un solo paso, ideales para cargar esquemas o datos iniciales.
1
.read script.sql
sqlite3 incluye comandos especiales que comienzan con un punto (.) y facilitan la gestión y visualización de la base de datos.
.tableslista las tablas.schemamuestra la estructura.helpmuestra la ayuda.exitcierra la sesión
Para salir de sqlite3, escribe el comando
.qo con el atajo Ctrl + D
Más comandos especiales
Para ver una lista de los comandos de puntos disponibles, puedes escribir .help sin argumentos o help TOPIC para obtener información detallada sobre un TOPIC en específico. A continuación, te dejo una tabla con algunos comandos especiales disponibles.
| Comando | Descripción | Valor predeterminado |
|---|---|---|
.archive | Administrar archivos SQL. | . |
.auth | Muestra devoluciones de llamadas | OFF |
.backup ?DB? FILE | Crea un respaldo de la DB actual en un FILE indicado. | MAIN |
.bail ON | OFF | Detener después de un error. | OFF |
.binary ON | OFF | Activa o desactiva la salida binaria. | ON |
.cd DIR | Cambiar de ubicación a DIR especificado. | . |
.changes ON | OFF | Mostrar número de filas afectadas por SQL. | ON |
.clone NEWDB | Clona la base de datos actual en NEWDB (directorio) | . |
.databases | Lista las bases de datos adjuntas | . |
Funciones de E/S de archivos
La función readfile(x) lee todo el contenido de un archivo y devuelve ese contenido como un BLOB. Esto se puede usar para cargar contenido en una tabla. Por ejemplo:
1
2
3
4
5
6
7
8
CREATE TABLE imagenes(nombre TEXT,tipo TEXT,imagen BLOB);
INSERT INTO imagenes(nombre,tipo,imagen)
VALUES(
'icon_folder',
'png',
readfile('C:\\Users\\home\\Pictures\\folder.png')
);
La función writefile(x, y) crea un archivo llamado (x) y escribe el BLOB (y) y devuelve el número de bytes escritos:
1
2
SELECT writefile('folder.png', imagen)
FROM imagenes WHERE nombre = 'icon_folder';
Analizar archivos CSV
Con SQLite3 CLI, puedes importar archivos CSV fácilmente y consultarlos con SQL.
¡Ideal para analizar datos rápido sin herramientas adicionales!
Ejecuta sqlite3 sin argumentos. Esto iniciará SQLite en la memoria en vez de crear una base de datos en el disco.
1 2 3 4 5
.mode csv .import ventas.csv ventas .tables .mode table SELECT * FROM ventas LIMIT 5;
Resultado:
Ver las primeras 5 filas:
1
SELECT * FROM ventas LIMIT 5;
Total de ventas por categoría:
1 2 3
SELECT 'Categoría', SUM(Total) AS Ventas_Totales FROM ventas GROUP BY 'Categoría';
Ventas en enero de 2024:
1
SELECT * FROM ventas WHERE Fecha_Venta LIKE '2024-01%';
Productos más caros vendidos:
1
SELECT * FROM ventas ORDER BY Precio DESC LIMIT 5;
- Guardar los resultados en un nuevo CSV
- Si después de analizar los datos quieres guardar los resultados en otro archivo CSV, usa:
1 2 3 4 5 6 7
.mode csv .output resumen.csv SELECT 'Categoría', SUM(Total) AS Ventas_Totales FROM ventas GROUP BY 'Categoría'; .output stdout -- Volver a cambiar la salida al modo normal
Esto creará un archivo resumen.csv con el total de ventas por categoría.
Copia y guarda este contenido en un archivo llamado
ventas.csv:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Producto,Categoría,Precio,Cantidad,Total,Fecha_Venta Laptop,Electrónica,1200000,2,2400000,2023-01-15 Teléfono,Electrónica,850000,1,850000,2023-02-20 Teclado,Accesorios,46000,3,138000,2023-03-10 Mouse,Accesorios,25500,2,51000,2023-04-05 Monitor,Electrónica,300000,1,300000,2023-05-12 Impresora,Oficina,200000,1,200000,2023-06-25 Escritorio,Muebles,450000,1,450000,2023-07-30 Silla de oficina,Muebles,220000,2,440000,2023-08-18 Cámara,Electrónica,670000,1,670000,2023-09-22 Auriculares,Accesorios,75000,4,300000,2023-10-10 Laptop,Electrónica,1300000,1,1300000,2023-11-15 Teléfono,Electrónica,900000,2,1800000,2023-12-05 Teclado,Accesorios,50000,1,50000,2024-01-08 Mouse,Accesorios,30000,3,90000,2024-02-14 Monitor,Electrónica,310000,2,620000,2024-03-20 Impresora,Oficina,215000,1,215000,2024-04-02 Escritorio,Muebles,480000,1,480000,2024-05-09 Silla de oficina,Muebles,250000,3,750000,2024-06-15 Cámara,Electrónica,700000,2,1400000,2024-07-21 Auriculares,Accesorios,81000,1,81000,2024-08-30
Exportar a otros formatos
SQLite permite exportar a otros formatos como JSON, CSV. Esto resulta útil cuando necesitas compartir información fuera de la base de datos.
Exportar a JSON
SQLite permite exportar directamente a JSON si usas una versión 3.33 o superior, puedes exportar tus datos a JSON con el siguiente comando:
1
sqlite3 mi_base.db -json "SELECT * FROM ventas;" > ventas.json
Expotar a CSV
El formato CSV es ideal para hojas de cálculo u otras herramientas que aceptan datos tabulares, puedes exportar a CSV con el siguiente comando:
1
sqlite3 -header -csv mi_base_db "SELECT * FROM ventas;" > ventas.csv
-header: incluye la fila con nombres de columnas.-csv: define el formato delimmitado por comas.
Configuraración permanente
Para definir opciones de forma permanente al ejecutar sqlite3, crea un archivo de configuración .sqliterc en el directorio del usuario. Ejemplo:
1
nano ~/.sqliterc
Luego añade las opciones que quieres que se apliquen siempre:
1
2
3
4
.headers on
.mode table
.nullvalue NULL
PRAGMA foreign_keys = ON;
Al abrir nuevamente el programa se aplican esas configuraciones.
La línea de comandos de SQLite3 es una herramienta ligera que te permite administrar bases de datos sin necesidad de instalar programas gráficos. Es ideal para quienes están aprendiendo SQL.




