No dia a dia do desenvolvimento, é comum precisarmos validar tipos de dados, tamanhos de campos ou permissões de nulidade para garantir que nossas Migrations ou Queries estejam sincronizadas com o banco de dados. No MySQL, existem duas formas principais de obter essas informações de maneira filtrada.

Neste artigo, utilizaremos como exemplo uma tabela genérica chamada produtos_estoque.

1. O Método Pragmático: SHOW COLUMNS Link para o cabeçalho

O comando SHOW COLUMNS é a ferramenta de “campo” do desenvolvedor. Ele é direto, fácil de lembrar e retorna o essencial para o trabalho imediato.

Exemplo de Uso Link para o cabeçalho

Se quisermos verificar apenas as colunas de precificação e fornecedor, ignorando o resto da tabela:

SHOW COLUMNS FROM produtos_estoque 
WHERE Field IN ('preco_venda', 'custo_aquisicao', 'fornecedor_id', 'status_disponibilidade');
```

Vantagem: Sintaxe curta e leitura rápida. Resultado: Exibe Field, Type, Null, Key, Default e Extra.

2. O Método Analítico: INFORMATION_SCHEMA Link para o cabeçalho

Quando a necessidade é gerar um relatório técnico, documentar o sistema ou alimentar uma ferramenta de auditoria, recorremos ao INFORMATION_SCHEMA. Ele é um banco de dados virtual que contém metadados sobre todos os outros bancos de dados.

Exemplo de Uso Link para o cabeçalho

Com este método, podemos renomear os cabeçalhos para português e até forçar uma ordem específica de exibição usando a função FIELD():

SELECT 
    COLUMN_NAME AS 'Coluna', 
    COLUMN_TYPE AS 'Tipo/Tamanho', 
    IS_NULLABLE AS 'Aceita Nulo',
    COLUMN_DEFAULT AS 'Valor Padrão'
FROM 
    INFORMATION_SCHEMA.COLUMNS 
WHERE 
    TABLE_NAME = 'produtos_estoque'
    AND TABLE_SCHEMA = 'nome_do_seu_banco' -- Importante para evitar duplicidade
    AND COLUMN_NAME IN ('preco_venda', 'custo_aquisicao', 'fornecedor_id')
ORDER BY 
    FIELD(COLUMN_NAME, 'preco_venda', 'custo_aquisicao', 'fornecedor_id');

Vantagem: Total controle sobre as colunas retornadas e possibilidade de filtros complexos (ex: “listar apenas colunas do tipo decimal”). Dica: Sempre inclua o TABLE_SCHEMA para garantir que você está olhando para o banco de dados correto, caso existam tabelas com nomes iguais em instâncias diferentes.

Conclusão Link para o cabeçalho

  • Use SHOW COLUMNS para consultas rápidas durante o desenvolvimento (o famoso “deixa eu ver como é esse campo mesmo?”).
  • Use INFORMATION_SCHEMA para scripts automáticos, relatórios de estrutura ou quando a ordem das colunas no resultado for crucial.