Entrada
Preview Image

Command Line For SQLite3


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.

    1. Ingresa al sitio oficial: https://www.sqlite.org/download.html
    2. Descarga el archivo sqlite-tools correspondiente a la arquitectura de tu sistema (32 o 64 bits), por ejemplo: sqlite-tools-win32-x86.
    3. Extrae el archivo .zip en una carpeta, por ejemplo C:\sqlite.
    4. 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.

  • Puedes instalar SQLite fácilmente usando Homebrew:

    1
    
    brew install sqlite
    
  • 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 escribe sqlite3 en la terminal para iniciar una sesión en memoria.

Configuración actual de sqlite Configuración actual de sqlite 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.

  • .tables lista las tablas
  • .schema muestra la estructura
  • .help muestra la ayuda
  • .exit cierra la sesión

Para salir de sqlite3, escribe el comando .q o 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.

ComandoDescripciónValor predeterminado
.archiveAdministrar archivos SQL..
.authMuestra devoluciones de llamadasOFF
.backup ?DB? FILECrea un respaldo de la DB actual en un FILE indicado.MAIN
.bail ON | OFFDetener después de un error.OFF
.binary ON | OFFActiva o desactiva la salida binaria.ON
.cd DIRCambiar de ubicación a DIR especificado..
.changes ON | OFFMostrar número de filas afectadas por SQL.ON
.clone NEWDBClona la base de datos actual en NEWDB (directorio).
.databasesLista 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:

    Importar y analizar CSV Importar y analizar CSV

    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.

aplicar las configuraciones aplicar las 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.

Esta entrada está licenciada bajo CC BY 4.0 por el autor.