Tudo o que você precisa saber sobre como listar bancos de dados MySQL

Uma das primeiras coisas que você vai querer saber ao fazer logon em um novo servidor MySQL é quais bancos de dados estão disponíveis. Você pode querer uma lista de bancos de dados ao realizar a manutenção. Ou você pode apenas estar curioso ou tentando encontrar um banco de dados antigo cujo nome você esqueceu há muito tempo.

Uma linha de comando em branco pode ser intimidante. Cada um desses casos exige um comando simples, e o MySQL o fornece na forma de SHOW DATABASES . Este comando tem um uso muito direto, mas você logo descobrirá que ele é útil se você trabalha com MySQL.

Neste artigo, você descobrirá tudo o que precisa saber sobre como listar bancos de dados MySQL.

Como usar o comando SHOW DATABASES

Depois de fazer login no servidor MySQL, digite o texto SHOW DATABASES; na linha de comando e pressione Enter no teclado – você pode ver um exemplo abaixo.

O MySQL retorna os resultados em uma tabela com uma coluna: Banco de dados . Esta coluna contém o nome de cada banco de dados e os organiza em ordem alfabética. A linha de resumo informa quantas linhas – isto é, bancos de dados – existem.

Você deve sempre ver pelo menos quatro bancos de dados de lista MySQL por padrão. Estes são bancos de dados de sistema especiais que o MySQL instala:

  • mysql.
  • information_schema.
  • performance_schema.
  • sys.

Você verá para que um deles – information_schema – é usado mais tarde.

Filtrando os resultados de SHOW DATABASES

Você pode usar a mesma condição LIKE que usa em uma cláusula WHERE de uma instrução SELECT . LIKE recebe um único argumento, um padrão para combinar. O padrão pode incluir dois caracteres especiais: % (porcentagem) e _ (sublinhado). Eles correspondem a qualquer string e a qualquer caractere único, respectivamente.

Por exemplo, para listar todos os bancos de dados com a letra a em seus nomes:

 SHOW DATABASES LIKE '%a%';

Como usar condições mais complicadas

Se você precisar usar uma condicional mais complicada do que a correspondência de padrão básica de LIKE, ainda poderá usar a conhecida cláusula WHERE. O truque que você precisa aplicar é consultar a coluna que representa os nomes do banco de dados. Como você pode ver na saída acima, é simplesmente Banco de dados . Agora, como o MySQL a considera uma palavra-chave reservada, você precisará escapar dela com crases.

 SHOW DATABASES WHERE LENGTH(`Database`) > 6;

Os resultados agora contêm apenas tabelas com nomes com mais de seis caracteres:

Relacionado: Guia do iniciante para escrever esquemas de banco de dados MySQL

Filtrando Bancos de Dados por Outros Metadados

O MySQL oferece suporte a alguns outros campos relacionados ao banco de dados, mas eles não estão disponíveis por meio de SHOW_DATABASES . Para isso, você precisará usar a tabela schemata do banco de dados information_schema . Esta é a aparência da estrutura desta tabela especial do sistema:

Além de SCHEMA_NAME , que é exatamente igual à coluna Banco de dados de SHOW DATABASES, existem apenas dois campos úteis: DEFAULT_CHARACTER_SET_NAME e DEFAULT_COLLATION_NAME . Os outros campos sempre têm o mesmo valor, portanto, são inúteis quando se trata de filtragem.

Os campos DEFAULT_CHARACTER_SET_NAME e DEFAULT_COLLATION_NAME Defina quais os caracteres dos suportes de banco de dados, e como encomendá-los. Você pode não ter pensado sobre eles antes, mas eles são importantes se você estiver lidando com texto não ASCII.

Saber a diferença entre ASCII e Unicode é importante! Se você tiver vários bancos de dados instalados de fontes diferentes, é mais provável que tenha uma gama de valores.

Reutilizando o exemplo anterior, você pode filtrar as colunas desta tabela como qualquer outra:

 SELECT schema_name FROM information_schema.schemata WHERE DEFAULT_CHARACTER_SET_NAME='utf8';

Você pode realizar qualquer outra operação de tabela na tabela de esquemas, como agrupamento:

 SELECT DEFAULT_CHARACTER_SET_NAME, COUNT(*) FROM information_schema.schemata GROUP BY DEFAULT_CHARACTER_SET_NAME;

Relacionado: Tudo o que você precisa saber sobre a instrução SQL GROUP BY

Usando um comando simples no MySQL para listar bancos de dados

Este comando é provavelmente o mais simples que o MySQL tem a oferecer. Mas isso não impede que seja muito útil. Se você alguma vez se deparar com uma linha de comando do MySQL, lembre-se de desenhar um espaço em branco, SHOW DATABASES é uma boa maneira de começar do zero.

Assim que você tiver um banco de dados instalado e saber com qual está trabalhando, é hora de aprender mais sobre os esquemas e como organizar melhor seus dados.