Introducción
SQLite es un motor de bases de datos popular, conocido por su simplicidad y eficiencia para administrar bases de datos relacionales. Es un motor de bases de datos SQL embebido, lo que significa que suele usarse directamente dentro de las aplicaciones, como una solución ligera que no necesita un proceso de servidor aparte. En este tutorial veremos cómo listar las tablas de una base de datos SQLite, una tarea común cuando te estás familiarizando con la estructura de una base de datos existente o cuando estás depurando.
Requisitos previos
Necesitas tener SQLite instalado y accesible. Puedes interactuar con bases de datos SQLite de varias formas, como la línea de comandos, un script de Python o herramientas con GUI como Beekeeper Studio. En esta guía usaremos la herramienta de línea de comandos de SQLite, ya que está disponible en todos lados.
Cómo acceder a la base de datos SQLite
Para empezar, abre tu terminal o símbolo del sistema y accede a tu base de datos SQLite con la herramienta de línea de comandos de SQLite. El comando general para empezar a interactuar con tu base de datos es:
sqlite3 your_database_file.db
Reemplaza ‘your_database_file.db’ con la ruta a tu archivo de base de datos SQLite.
Listar tablas con el comando .tables
SQLite ofrece el comando .tables como una forma sencilla de listar todas las tablas disponibles en tu base de datos activa.
Desde la shell de línea de comandos de SQLite, escribe lo siguiente:
.tables
Al ejecutar este comando, SQLite te devolverá una lista con los nombres de todas las tablas de tu base de datos actual.
Salida esperada: (usando la base de datos de ejemplo ‘sakila.db’)
actor experiments payment
address film rental
category film_actor sales_by_film_category
city film_category sales_by_store
country film_list staff
customer film_text staff_list
customer_list inventory store
events language
¿Cómo funciona el comando .tables?
SQLite le indica a la base de datos que devuelva los nombres de todas las tablas y vistas de la base de datos principal y de las adjuntas. Internamente, lo hace ejecutando un comando SELECT sobre la tabla sqlite_master.
Consultar la tabla sqlite_master
Si quieres más control, puedes consultar directamente la tabla ‘sqlite_master’, que guarda los metadatos de la base de datos, incluidas las definiciones de las tablas.
Por ejemplo:
SELECT name FROM sqlite_master WHERE type='table';
Este comando SQL selecciona todos los registros de la columna name de la tabla sqlite_master donde type es ‘table’.
Salida esperada: (usando la base de datos de ejemplo ‘sakila.db’)
---------------
actor
sqlite_sequence
country
city
address
language
category
customer
film
film_actor
film_category
film_text
inventory
staff
store
payment
rental
experiments
events
Mostrar el esquema de una tabla con el comando .schema
Para revisar la estructura o ‘esquema’ de tu tabla (es decir, sus columnas y sus respectivos tipos de datos), SQLite ofrece el comando .schema:
.schema your_table_name
Salida esperada: (usando la tabla ‘actor’ de la base de datos de ejemplo ‘sakila.db’)
CREATE TABLE actor (
actor_id integer PRIMARY KEY AUTOINCREMENT NOT NULL,
first_name VARCHAR(45) NOT NULL,
last_name VARCHAR(45) NOT NULL,
last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
, "email_address" VARCHAR(255) NULL);
CREATE INDEX idx_actor_last_name ON actor(last_name)
;
CREATE TRIGGER actor_trigger_ai AFTER INSERT ON actor
BEGIN
UPDATE actor SET last_update = DATETIME('NOW') WHERE rowid = new.rowid;
END;
CREATE TRIGGER actor_trigger_au AFTER UPDATE ON actor
BEGIN
UPDATE actor SET last_update = DATETIME('NOW') WHERE rowid = new.rowid;
END;
Reemplaza ‘your_table_name’ con el nombre de tu tabla.
Este comando devuelve la sentencia CREATE TABLE que se usó para crear la tabla en tu base de datos.
Usar una sentencia SQL SELECT
Otra opción es obtener el esquema con una sentencia SELECT sobre la tabla sqlite_master:
SELECT sql FROM sqlite_master WHERE name = 'your_table_name';
Este comando devuelve la misma sentencia CREATE TABLE que el comando .schema, pero sin las sentencias ‘INDEX’ y ‘TRIGGER’.
Usar el comando PRAGMA para obtener información de una tabla
Otra alternativa en SQLite es usar el comando PRAGMA, que te da distintas características de la base de datos SQLite. Un comando PRAGMA muy útil es ‘table_info’, con el que puedes obtener información sobre las columnas de una tabla.
Aunque ‘table_info’ no lista todas las tablas, puedes usarlo junto con los comandos para listar tablas y entender su estructura en cuanto encuentres sus nombres.
Ejemplo:
PRAGMA table_info('actor');
Salida esperada: (usando la tabla ‘actor’ de la base de datos de ejemplo ‘sakila.db’)
cid name type notnull dflt_value pk
--- ------------- ------------ ------- ----------------- --
0 actor_id INTEGER 1 1
1 first_name VARCHAR(45) 1 0
2 last_name VARCHAR(45) 1 0
3 last_update TIMESTAMP 1 CURRENT_TIMESTAMP 0
4 email_address VARCHAR(255) 0 0
Cada fila representa una columna de la tabla ‘actor’, y los campos muestran, respectivamente, el ‘cid’, el ‘name’ y el ‘type’ de la columna, si es ‘not null’, su ‘default value’ y si es ‘primary key’.
Conclusión
Listar tablas en SQLite es una habilidad fundamental para administrar e inspeccionar bases de datos. Ya sea que uses el comando .tables para una lista rápida, consultes la tabla sqlite_master para un enfoque más programático o uses sentencias PRAGMA para obtener información detallada sobre la estructura de las tablas, SQLite te ofrece varias herramientas para entender tu base de datos e interactuar con ella de forma eficaz.
Aunque entender y escribir comandos SQL para ver tus tablas de SQLite puede ser satisfactorio, también puede ser complejo y quitarte mucho tiempo, sobre todo con bases de datos enormes.
Beekeeper Studio te ofrece una interfaz amigable para las tablas de tu base de datos, lo que hace mucho más cómodo navegar entre muchas tablas.
Además, para ver el esquema de cualquier tabla, solo haz clic en su nombre y el esquema aparecerá en un formato bien estructurado.
Beekeeper Studio es una GUI para SQLite gratuita y de código abierto
Esto es justo lo que necesitaba. La interfaz es ágil y limpia, funciona como quiero y espero, y simplemente cumple. Es la herramienta perfecta para trabajar con mis bases de datos SQLite. - Andy
Beekeeper Studio es un cliente de SQLite rápido, intuitivo y fácil de usar. También es compatible con muchísimas otras bases de datos y funciona de maravilla en Windows, Mac y Linux.
Lo que dicen los usuarios de SQLite sobre Beekeeper Studio
¡Nunca entendí de verdad cómo funciona el diseño de modelos hasta que empecé a usar esto para consultar y ver la base de datos! Estoy agradecido por tenerlo en mi camino. Lo recomiendo a quien esté aprendiendo Django + sqlite, porque es lo único para lo que lo he usado hasta ahora.
Dos cosas clave. Primero, la conectividad. No tengo que usar DB Browser for SQLite, MySQL Workbench para MySQL ni psql para PostgreSQL. Beekeeper funciona con todas. Segundo: la IA. La función de IA convierte inglés en SQL.