Pular para o conteúdo principal

SQLite Show Tables: Um guia completo para navegação em banco de dados

Explore diferentes métodos para listar tabelas em um banco de dados SQLite usando a linha de comando, consultas SQL e linguagens de programação como Python e C.
Actualizado 14 de fev. de 2025  · 9 min de leitura

A exibição de tabelas no SQLite é importante para a navegação e o gerenciamento do banco de dados. Ao trabalhar com bancos de dados, a exibição da tabela ajuda você a entender a estrutura do banco de dados, especialmente ao lidar com dados com relacionamentos complexos. Ao contrário do MySQL, que oferece um comando direto SHOW TABLES, o SQLite não tem um método direto de exibição de tabela. No entanto, o SQLite oferece vários métodos alternativos para que você alcance o mesmo resultado.

Neste tutorial, mostrarei a você os diferentes métodos para mostrar tabelas no banco de dados SQLite, incluindo o uso do comando .tables, a tabela sqlite_master e o comando PRAGMA.

Resposta rápida: Como mostrar tabelas no SQLite

No SQLite, você pode recuperar facilmente os nomes das tabelas em um banco de dados usando comandos e consultas simples. Os dois métodos mais simples incluem o seguinte.

  • .tables Comando: Esse é um comando SQLite incorporado no shell de linha de comando que mostra todas as tabelas no banco de dados atual.

  • Consulta SQL em sqlite_master: Você também pode executar a seguinte consulta para recuperar nomes de tabelas:

SELECT name FROM sqlite_master WHERE type='table';

Uma gama completa de métodos para mostrar tabelas no SQLite

Agora, vamos examinar as diferentes maneiras de mostrar tabelas no SQLite:

Mostrar tabelas usando o comando .tables

A maneira mais simples de exibir tabelas no banco de dados SQLite é usar o comando .tables. A seguir, você encontrará alguns métodos para usar o comando .tables.

Exibição de todas as tabelas

Para exibir todas as tabelas do banco de dados, basta executar o comando .tables na interface de linha de comando (CLI). Esse método é simples e útil quando você deseja visualizar o esquema do banco de dados.

.tables

Usando padrões

O site .tables também oferece suporte à filtragem por meio de padrões para permitir a filtragem de tabelas específicas. Você pode especificar um padrão com o comando .tables usando caracteres curinga, como %. Essa técnica é útil quando você tem muitas tabelas em seu banco de dados e deseja filtrar tabelas específicas.

O comando abaixo retornará apenas as tabelas que começam com "a", ajudando você a filtrar as tabelas desnecessárias.

.tables a%

Também gostaria de esclarecer que o comando .tables no shell do SQLite usa padrões GLOB em vez dos padrões LIKE do SQL. Essa distinção é importante porque o GLOB diferencia maiúsculas de minúsculas e usa * e ? como curingas, ao contrário de % e _ no SQL.

Tabelas temporárias

O comando .tables também permite que você mostre tabelas temporárias no banco de dados. Ao usar o SQLite, você pode criar uma tabela temporária usando a instrução CREATE TEMPORARY TABLE, que só existe durante a sessão. Usando o comando .tables, você pode exibir a tabela temporária junto com as tabelas regulares, desde que a sessão permaneça ativa.

Mostrar tabelas usando a tabela sqlite_master

A tabela sqlite_master no SQLite é uma tabela de sistema especial que armazena metadados sobre o esquema do banco de dados, incluindo tabelas, índices, exibições e acionadores. Esse método oferece mais controle e flexibilidade ao listar tabelas do que o comando .tables, permitindo que você personalize a consulta, aplique filtros e recupere tipos específicos de tabelas. A seguir, você encontrará métodos para usar a tabela sqlite_master.

Consulta de nomes de tabelas

Para recuperar nomes de tabelas do banco de dados, você pode usar a seguinte consulta SQL na tabela sqlite_master.

SELECT name FROM sqlite_master WHERE type='table';

Observe que essa consulta retorna apenas os nomes das tabelas, pois especificamos o endereço type como ‘table’.

Tabelas do sistema de filtragem

O SQLite geralmente armazena dados internos em tabelas do sistema, como sqlite_sequence, mas essas tabelas podem não ser relevantes para a maioria das operações do banco de dados. Para excluir essas tabelas da lista de tabelas exibidas, você pode adicionar um filtro condicional na consulta para filtrá-las. As tabelas do sistema geralmente são prefixadas com o nome sqlite_, o que facilita a filtragem.

SELECT name FROM sqlite_master 
WHERE type='table' AND name NOT LIKE 'sqlite_%';

Mostrar tabelas usando o comando PRAGMA

O comando PRAGMA table_list no SQLite também lista efetivamente as tabelas em um banco de dados. Esse comando fornece nomes de tabelas e inclui metadados adicionais, como o esquema e o tipo de tabela. Isso o torna uma opção mais avançada do que o comando .tables e a consulta à tabela sqlite_master. Vamos discutir como você pode usar o método abaixo.

Exibição de metadados da tabela

O comando PRAGMA table_list retorna uma lista de tabelas e metadados detalhados, incluindo o seguinte:

  • Nome do esquema: Indica se a tabela pertence ao banco de dados principal ou a um esquema anexo diferente.
  • Nome da mesa: O nome da tabela.
  • Tipo de tabela: Especifica se a entrada é uma tabela, visualização ou tabela temporária.
  • Origem da tabela: indica se a tabela foi criada pelo usuário ou automaticamente pelo sistema.
PRAGMA table_list;

Filtragem por esquema

Você também pode usar o site PRAGMA table_list para filtrar o banco de dados por esquema. Essa técnica é importante, especialmente se você tiver vários esquemas como temp, main ou outros esquemas definidos pelo usuário. Por exemplo, o comando abaixo mostrará as tabelas no esquema main.

PRAGMA table_list('main');

Mostrar tabelas no SQLite usando linguagens de programação

Os desenvolvedores podem listar tabelas em um banco de dados SQLite usando várias linguagens de programação, inclusive Python e C. Esse recurso é importante para aplicativos que interagem dinamicamente com bancos de dados, permitindo melhor gerenciamento de dados e experiência do usuário.

Casos de uso de tabelas de exibição do SQLite

Os casos de uso comuns para listar tabelas em aplicativos incluem o seguinte:

  • Gerenciamento de banco de dados: A listagem dinâmica de tabelas ajuda a gerenciar bancos de dados, validar sua estrutura e realizar operações como migrações ou backups.
  • Consultas e relatórios dinâmicos: Alguns aplicativos precisam exibir dinamicamente as tabelas disponíveis aos usuários para que eles possam selecionar tabelas específicas para consultar ou gerar relatórios.
  • Migração e validação de dados: Ao migrar ou validar dados entre bancos de dados, é importante garantir que todas as tabelas necessárias existam e correspondam à estrutura esperada.

Conectando-se ao SQLite e consultando nomes de tabelas de forma programática

Você deve seguir as etapas abaixo para se conectar programaticamente ao banco de dados SQLite e listar os nomes das tabelas.

  • Estabeleça uma conexão com o banco de dados SQLite: A maioria das linguagens de programação tem bibliotecas que permitem a fácil integração com o SQLite (por exemplo, sqlite3 em Python ou a API C do SQLite).

  • Executar uma consulta para recuperar nomes de tabelas: Você pode usar a tabela sqlite_master para mostrar os nomes das tabelas ou o comando PRAGMA table_list para mostrar metadados detalhados.

Obtenção de dados de tabela em C

Você pode conectar o aplicativo SQLite em C usando a API C do SQLite. Usando essa API, você pode buscar dados de tabela usando instruções SQL como PRAGMA table_list ou consultando a tabela sqlite_master. Essa técnica é útil para a programação de sistemas de baixo nível quando você tem recursos limitados e deseja manter o desempenho ideal.

Considerações sobre o desempenho

Você pode encontrar alguns problemas de desempenho ao listar tabelas no SQLite, especialmente ao trabalhar com grandes conjuntos de dados. Eles incluem o seguinte:

Desempenho da linha de comando

Como o .tables é incorporado ao SQLite, ele é otimizado para velocidade e eficiência em bancos de dados menores. No entanto, o uso de consultas SQL como SELECT name FROM sqlite_master WHERE type='table'; é um pouco mais lento do que .tables porque o mecanismo de execução de consultas processa a solicitação. Dito isso, a diferença será, em termos práticos, insignificante. A consulta SQL ainda é mais flexível do que o comando .tables, pois permite filtrar os resultados.

Desempenho programático

Ao usar a biblioteca sqlite3 em Python, o desempenho pode ser lento, especialmente ao lidar com grandes conjuntos de dados. No entanto, o C oferece acesso mais direto e otimizado aos bancos de dados SQLite por meio da API C do SQLite. Você pode considerar o uso do C ao lidar com grandes conjuntos de dados que exigem interação frequente com o banco de dados para obter um desempenho otimizado e eficiente.

Erros comuns e como lidar com eles

Ao listar tabelas no SQLite, você pode encontrar alguns erros que dificultam o processo. Abaixo estão alguns dos erros comuns e como solucioná-los.

Nenhuma tabela encontrada

As possíveis causas do erro "nenhuma tabela encontrada" incluem o seguinte:

  • Banco de dados vazio: O banco de dados pode não ter tabelas, especialmente em bancos de dados recém-criados ou após a eliminação de todas as tabelas. 

  • Conexão incorreta com o banco de dados: Você pode estar conectado ao banco de dados errado ou inesperado. Sempre verifique o caminho do arquivo do banco de dados e certifique-se de que você está conectado ao banco de dados correto.

  • Corrupção de banco de dados: A corrupção do banco de dados pode fazer com que o SQLite não exiba as tabelas corretamente. Para detectar a corrupção do banco de dados, execute o site PRAGMA integrity_check e siga as etapas.

Problemas com tabelas temporárias

Ao trabalhar com tabelas temporárias, você pode encontrar os seguintes problemas:

  • Natureza específica da sessão: As tabelas temporárias geralmente estão vinculadas à conexão e à sessão atuais do banco de dados. Se você não conseguir ver a tabela temporária esperada na lista de tabelas, sempre verifique se está conectado à sessão atual.

  • Conflitos de nomes: As tabelas temporárias compartilham namespaces com as tabelas regulares e podem sombrear as tabelas regulares se forem criadas usando nomes existentes. Nesses cenários, o comando listing table pode não mostrar as tabelas regulares, a menos que você elimine as tabelas temporárias.

  • Listando tabelas temporárias: Os comandos .tables e PRAGMA table_list exibem tabelas temporárias. Se você consultar o site sqlite_master, as tabelas temporárias não serão exibidas, pois estão armazenadas em um banco de dados temporário diferente. Para listar explicitamente as tabelas temporárias, use a tabela temp.sqlite_master: SELECT name FROM temp.sqlite_master WHERE type='table';

Alternativas para listar tabelas no SQLite

Existem diferentes métodos alternativos ao comando .tables e à consulta a sqlite_master para listar tabelas no SQLite. Esses métodos incluem os seguintes:

Usando ferramentas de GUI do SQLite

As seguintes ferramentas de GUI do SQLite são eficazes se você quiser visualizar e gerenciar as tabelas sem escrever consultas.

  • Navegador DB para SQLite: Uma ferramenta GUI de código aberto que permite aos usuários interagir visualmente com seus bancos de dados com uma interface simples para visualizar todas as tabelas em um banco de dados.
  • Beekeeper Studio: Uma ferramenta GUI multiplataforma para SQLite que oferece uma interface intuitiva para gerenciar bancos de dados, incluindo a listagem de tabelas, a edição de linhas e a execução de consultas.
  • DBeaver: Uma ferramenta universal de banco de dados que permite aos usuários navegar pela estrutura do banco de dados, incluindo a visualização de tabelas, colunas e seus metadados.

Soluções programáticas

Como alternativa às ferramentas de linha de comando ou GUI, os desenvolvedores podem usar linguagens de programação como Python, C, Java ou Node.js para listar tabelas no SQLite de forma programática.

  • Python: A biblioteca sqlite3 em Python permite que os desenvolvedores se conectem a um banco de dados e executem consultas para listar tabelas.

  • C: A API C permite que você se conecte ao SQLite e recupere tabelas com eficiência, especialmente em sistemas incorporados ou de desempenho crítico.

  • JavaScript (Node.js): Pacotes como better-sqlite3 ou sqlite3 para Node.js permitem que os desenvolvedores integrem a listagem de tabelas do SQLite em aplicativos da Web ou serviços de back-end.

Conclusão

Há diferentes métodos para exibir tabelas SQLite, incluindo o comando .tables, a consulta à tabela sqlite_master e o uso do comando PRAGMA table_list para maior flexibilidade. Entender quando usar cada técnica é importante para que você navegue e gerencie com eficiência os bancos de dados SQLite.

Perguntas frequentes sobre o SQLite

Como o SQLite difere de outros bancos de dados na listagem de tabelas?

O SQLite não tem um comando SHOW TABLES como o MySQL ou o PostgreSQL. Em vez disso, ele lista tabelas usando comandos como .tables e consultas na tabela sqlite_master.

Qual é a diferença entre .tables e a consulta da tabela sqlite_master?

O comando .tables é uma função integrada na CLI do SQLite para uma listagem rápida de tabelas, enquanto a consulta sqlite_master oferece mais flexibilidade e permite a filtragem ou condições adicionais ao listar tabelas.

Por que não há tabelas no meu banco de dados SQLite?

Você pode encontrar o erro "nenhuma tabela encontrada" se tiver um banco de dados vazio, se estiver conectado ao arquivo de banco de dados errado ou se tabelas temporárias tiverem sido criadas em uma sessão diferente.

Posso usar o SQLite em linguagens de programação para listar tabelas?

Sim, a maioria das linguagens de programação, como Python, C e JavaScript (Node.js), tem bibliotecas ou APIs que permitem que você interaja com bancos de dados SQLite e recupere uma lista de tabelas.

Quais ferramentas estão disponíveis para você visualizar tabelas no SQLite sem usar comandos SQL?

Ferramentas como o DB Browser for SQLite, o Beekeeper Studio e o DBeaver permitem que você visualize e gerencie tabelas sem escrever comandos SQL.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Eu crio artigos que simplificam a ciência e a análise de dados, tornando-as fáceis de entender e acessíveis.
Temas

Aprenda com a DataCamp

curso

Intermediate SQL

4 hr
316.5K
Accompanied at every step with hands-on practice queries, this course teaches you everything you need to know to analyze data using your own SQL code today!
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

tutorial

Tutorial de SQLAlchemy com exemplos

Aprenda a acessar e executar consultas SQL em todos os tipos de bancos de dados relacionais usando objetos Python.
Abid Ali Awan's photo

Abid Ali Awan

13 min

tutorial

Tutorial do MySQL: Um guia abrangente para iniciantes

Descubra o que é o MySQL e como começar a usar um dos sistemas de gerenciamento de banco de dados mais populares.
Javier Canales Luna's photo

Javier Canales Luna

15 min

tutorial

Tutorial de visão geral do banco de dados SQL

Neste tutorial, você aprenderá sobre bancos de dados em SQL.
DataCamp Team's photo

DataCamp Team

3 min

tutorial

Tutorial de como executar consultas SQL em Python e R

Aprenda maneiras fáceis e eficazes de executar consultas SQL em Python e R para análise de dados e gerenciamento de bancos de dados.
Abid Ali Awan's photo

Abid Ali Awan

13 min

tutorial

Exemplos e tutoriais de consultas SQL

Se você deseja começar a usar o SQL, nós o ajudamos. Neste tutorial de SQL, apresentaremos as consultas SQL, uma ferramenta poderosa que nos permite trabalhar com os dados armazenados em um banco de dados. Você verá como escrever consultas SQL, aprenderá sobre
Sejal Jaiswal's photo

Sejal Jaiswal

21 min

tutorial

SELEÇÃO de várias colunas no SQL

Saiba como selecionar facilmente várias colunas de uma tabela de banco de dados em SQL ou selecionar todas as colunas de uma tabela em uma consulta simples.
DataCamp Team's photo

DataCamp Team

3 min

Ver maisVer mais