Command Line For SQLite3 (línea de comandos) para ejecutar SQL
SQLite incluye una herramienta de línea de comandos simple llamado sqlite3
, que permite a los usuarios interactuar directamente con bases de datos SQLite y ejecutar instrucciones SQL. Esta utilidad es especialmente útil para realizar pruebas rápidas, consultas, y tareas de administración sin necesidad de una interfaz gráfica.
Al ejecutar el comando sqlite3
seguido del nombre de una base de datos ( por ejemplo: mi_base_de_datos.db
), el programa abrirá la base de datos especificada o la creará si no existe. A continuación, mostrará un breve mensaje de bienvenida y quedará en espera de que el usuario indtroduzca instrucciones SQL.
¿Qué es la línea de comandos de SQLite3?
La interfaz de línea de comandos (Command Line Interface) es un programa que permite interactuar con bases de datos SQLite mediante comandos SQL.
Este programa está disponible para los principales sistemas operativos ( Windows, macOS y Linux ) y puede ser descargado gratuitamente desde su sitio web oficial
Instalar el Programa
La instalación de SQLite3 es sencilla y varía ligeramente dependiendo del sistema operativo:
Windows
- Ve al sitio oficial de SQLite: https://www.sqlite.org/download.html
- Descarga el archivo “sqlite-tools” correspondiente a tu sistema (por ejemplo,
sqlite-tools-win32-x86
). - Extrae el archivo
.zip
en una carpeta, por ejemploC:\sqlite
. - Abre la terminal ( símbolo del sistema o PowerShell ), navega a esa carpeta y ejecuta
sqlite3
para iniciar el programa.
Opcional: Agrega la ruta de SQLite a las variables de entorno para poder usarlo desde cualquier ubicación del sistema.
macOS
Puedes instalar SQLite fácilmente usando Homebrew:
1
brew install sqlite
Luego, ejecuta el comando sqlite3
en la terminal para comenzar.
Linux ( Debian/Ubuntu )
En 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 debes escribir sqlite3
en la terminal para iniciar la herramienta.
¿Qué podemos hacer con la línea de comandos de SQLite3?
Una vez iniciado el programa sqlite3
, puedes revisar diversas operaciones sobre bases de datos SQLite, tales como:
- Crear nuevas bases de datos o abrir bases existentes.
- Ejecutar sentencias SQL.
- Crear y modificar tablas y otros objetos de la base de datos.
- Importar y exportar información ( por ejemplo, en formato CSV ).
- Ejecutar archivos
.sql
que contengan múltiples instrucciones. - Usar comandos internos especiales ( comienzan con
.
) para facilitar la gestión y visualización de datos.
Crear y abrir Bases de Datos
Para crear una base de datos, debes abrir una nueva Terminal o ventana de símbolo del sistema ( CMD ) y escribir el nombre del programa seguido del nombre del archivo de base de datos:
1
sqlite3 sistema.db
Si la base de datos no existe, creará el archivo de base de datos una vez que tengamos como mínimo creada una tabla.
El comando anterior abre un entorno interactivo y se ve de la siguiente manera:
1
2
3
SQLite version 3.40.1 2022-12-28 14:03:47
Enter ".help" for usage hints.
sqlite>
Ahora puedes ejecutar instrucciones SQL.
Crear Tablas
Ahora en la sesión interactiva ejecutamos una sentencia SQL para crear una tabla sencilla de ejemplo:
1
CREATE TABLE usuarios (id INT, nombre TEXT);
Creada una tabla, se crea el archivo de base de dato.
Insertar Datos
Ahora puedes crear nuevos registros:
1 2
INSERT INTO usuarios (id, nombre) VALUES (1, 'marco'); INSERT INTO usuarios (id, nombre) VALUES (2, 'marcelo');
1 2 3 4 5
sqlite> INSERT INTO usuarios (id, nombre) ...> VALUES (1, 'marco'); sqlite> INSERT INTO usuarios (id, nombre) ...> VALUES (2, 'marcelo');
Consultar información
Para ver los registros existentes con el comando SELECT
:
1
SELECT * FROM usuarios;
1 2 3
sqlite> SELECT * FROM usuarios; 1|marco 2|marcelo
Actualizar Registros
Modificar datos existentes con el comando UPDATE
:
1
UPDATE usuarios SET nombre = 'alonso' WHERE nombre = 'marcelo';
1
sqlite> UPDATE usuarios SET nombre = 'alonso' WHERE nombre = 'marcelo';
Eliminar Registros
Borrar registros específicos:
1
DELETE FROM usuarios WHERE nombre = 'marco';
1
sqlite> DELETE FROM usuarios WHERE nombre = 'marco';
Para salir del programa sqlite3 escribe el comando
.q
o con el atajo Ctrl + D y luego Enter.
Comandos Especiales
La mayoría de las veces, sqlite3 solo lee líneas de entrada y las pasa a la biblioteca SQLite para su ejecución. Pero las líneas de entradas que comienzan con un punto (.
) son interceptadas e interpretadas por el propio programa sqlite3.
Estos comandos de puntos se utilizan normalmente para cambiar el formato de salida, ver información sobre la base de datos o manejar ciertos aspectos del entorno de ejecución. Para ver una lista de los comandos de puntos disponibles, puede introducir el comando .help
sin argumentos o help TOPIC
para obtener información detallada sobre algún TOPIC
en específico. Aquí 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 | . |
Esquema de la base de datos
Para ver el esquema, donde figuran las sentencias SQL ejecutadas en la creación de tablas, ejecuta el comando .schema
o .fullschema
:
1
.fullschema
1 2 3
sqlite> .fullschema CREATE TABLE usuarios (id INT, nombre TEXT); /* No STAT tables available */
Ver las tablas existentes
Para listar las tablas existentes en la base de datos, ejecuta el siguiente comando especial de punto:
1
.tables
El comando anterior es equivalente a configurar el modo lista y luego ejecutar la siguiente consulta:
1
2
3
SELECT name FROM sqlite_schema
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
ORDER BY 1;
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
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
SELECT writefile('folder.png', imagen) FROM imagenes WHERE nombre = 'icon_folder';
Analizar Archivos CSV con SQL
La línea de comandos de sqlite3
permite importar archivos CSV fácilmente y consultarlos como si fueran una base de datos. Esto es útil para analizar datos sin necesidad de convertirlos a otro formato o cargarlos en una base de datos existente.
👉 ¡Ideal para analizar datos rápido sin herramientas adicionales!
Para hacer el análisis de un archivo CSV, abre una terminal y ejecuta sqlite3
sin argumentos. Esto iniciará SQLite en la memoria en vez de crear una base de datos en el disco, lo que significa que los datos se cargarán solo mientras la sesión esté activa. A continuación tienes los comandos que debes ejecutar para importar el CSV:
1 2
.mode csv .import ventas.csv ventas
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
Consultas SQL rápidas sobre el CSV
💡 Ejemplo: Ver las primeras 5 filas:
1
SELECT * FROM ventas LIMIT 5;
💡 Ejemplo: Total de ventas por categoría:
1
2
3
SELECT 'Categoría', SUM(Total) AS Ventas_Totales
FROM ventas
GROUP BY 'Categoría';
💡 Ejemplo: Ventas en enero de 2024:
1
SELECT * FROM ventas WHERE Fecha_Venta LIKE '2024-01%';
💡 Ejemplo: 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
.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.
Configurar SQLite CLI
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 de forma eficiente, sin necesidad de instalar programas gráficos o servidores adicionales. Es ideal para quienes están aprendiendo SQL, ya que ofrece una forma rápida y directa de practicar y ejecutar consultas.