Introdução
O SQLite é um mecanismo de banco de dados popular, conhecido pela simplicidade e eficiência no gerenciamento de bancos de dados relacionais. Ele é um mecanismo de banco de dados SQL embarcado, o que significa que costuma ser usado diretamente dentro das aplicações, oferecendo uma solução leve sem a necessidade de um processo de servidor separado. Neste tutorial, vamos ver como listar as tabelas de um banco de dados SQLite, uma tarefa comum quando você está se familiarizando com a estrutura de um banco existente ou depurando algo.
Pré-requisitos
Você precisa ter o SQLite instalado e acessível. É possível interagir com bancos SQLite de várias formas, como pela linha de comando, por um script Python ou por ferramentas gráficas como o Beekeeper Studio. Este guia usa a ferramenta de linha de comando do SQLite, já que ela está disponível em qualquer lugar.
Acessando o banco de dados SQLite
Para começar, abra o terminal ou prompt de comando e acesse seu banco de dados SQLite usando a ferramenta de linha de comando do SQLite. O comando geral para começar a interagir com seu banco é:
sqlite3 your_database_file.db
Substitua ‘your_database_file.db’ pelo caminho do seu arquivo de banco de dados SQLite.
Listando tabelas com o comando .tables
O SQLite oferece o comando .tables como uma forma fácil de listar todas as tabelas disponíveis no banco de dados ativo.
No shell de linha de comando do SQLite, digite o seguinte:
.tables
Ao executar esse comando, o SQLite retorna uma lista com os nomes de todas as tabelas do banco de dados atual.
Saída esperada: (usando o banco de exemplo ‘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
Como o comando .tables funciona?
O SQLite instrui o banco a retornar os nomes de todas as tabelas e views no banco principal e nos bancos anexados. Internamente, ele faz isso executando um comando SELECT na tabela sqlite_master.
Consultando a tabela sqlite_master
Para ter mais controle, você pode consultar diretamente a tabela ‘sqlite_master’, que armazena os metadados do banco, incluindo as definições das tabelas.
Por exemplo:
SELECT name FROM sqlite_master WHERE type='table';
Esse comando SQL seleciona todos os registros da coluna name da tabela sqlite_master em que o type é ‘table’.
Saída esperada: (usando o banco de exemplo ‘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
Mostrando o schema da tabela com o comando .schema
Para examinar a estrutura ou o ‘schema’ da sua tabela (ou seja, as colunas e seus respectivos tipos de dados), o SQLite oferece o comando .schema:
.schema your_table_name
Saída esperada: (usando a tabela ‘actor’ do banco de exemplo ‘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;
Substitua ‘your_table_name’ pelo nome da sua tabela.
Esse comando retorna a instrução CREATE TABLE usada para criar a tabela no seu banco de dados.
Usando uma instrução SELECT sql
Como alternativa, você pode obter o schema usando uma instrução SELECT na tabela sqlite_master:
SELECT sql FROM sqlite_master WHERE name = 'your_table_name';
Esse comando retorna a mesma instrução CREATE TABLE que o comando .schema, mas sem as instruções ‘INDEX’ e ‘TRIGGER’.
Usando o comando PRAGMA para obter informações da tabela
Outra abordagem no SQLite é usar o comando PRAGMA, que fornece diversas características do banco de dados SQLite. Um comando PRAGMA útil é o ‘table_info’, que pode ser usado para obter informações sobre as colunas de uma tabela.
Embora o ‘table_info’ não liste todas as tabelas, ele pode ser usado junto com os comandos de listagem para entender a estrutura das tabelas logo depois de descobrir seus nomes.
Exemplo:
PRAGMA table_info('actor');
Saída esperada: (usando a tabela ‘actor’ do banco de exemplo ‘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 linha representa uma coluna da tabela ‘actor’, e os campos mostram, respectivamente, o ‘cid’, o ‘name’, o ‘type’, o status ‘not null’, o ‘default value’ e a informação de ‘primary key’ da coluna.
Conclusão
Listar tabelas no SQLite é uma habilidade fundamental para gerenciar e inspecionar bancos de dados. Seja usando o comando .tables para uma lista rápida, consultando a tabela sqlite_master para uma abordagem mais programática ou usando instruções PRAGMA para obter informações detalhadas sobre a estrutura das tabelas, o SQLite oferece várias ferramentas para ajudar você a entender e interagir com seu banco de forma eficiente.
Embora entender e escrever comandos SQL para ver suas tabelas SQLite possa ser recompensador, também pode ser demorado e complexo, principalmente ao lidar com bancos de dados enormes.
O Beekeeper Studio oferece uma interface amigável para as tabelas do seu banco de dados, tornando mais prática a navegação entre inúmeras tabelas.
Além disso, para ver o schema de qualquer tabela, basta clicar no nome dela e o schema aparecerá em um formato bem estruturado.
O Beekeeper Studio é uma GUI para SQLite gratuita e open source
Era exatamente disso que eu precisava. A interface é ágil e limpa, funciona como eu gosto e espero, e simplesmente resolve. É a ferramenta perfeita para trabalhar com meus bancos SQLite. - Andy
O Beekeeper Studio é um cliente SQLite rápido, intuitivo e fácil de usar. Ele também suporta vários outros bancos de dados e funciona muito bem no Windows, Mac e Linux.
O que os usuários de SQLite dizem sobre o Beekeeper Studio
Eu nunca entendi de verdade como funciona o design de modelos até começar a usar isto para consultar e visualizar o banco de dados! Sou grato por ele na minha jornada. Recomendo para quem está aprendendo Django + sqlite, já que é só para isso que usei até agora.
Duas coisas principais. Primeiro, conectividade. Não preciso usar o DB Browser for SQLite, o MySQL Workbench para MySQL, o psql para PostgreSQL. O Beekeeper funciona com todos eles. Segundo: IA. O recurso de IA transforma inglês em SQL.