Administração de dados SQL no Excel
Introdução
Acho que o "MySQL Workbench" é uma ótima ferramenta para gerenciar tabelas, diagramas de tabelas (relações), índices, views e outros objetos, mas preencher e gerenciar dados é o pesadelo aí, devido a alguns bugs e usuários não tão amigáveis interface.. então criei um documento Excel só para isso
Casos de uso
- se você deseja carregar dados (importar) em alguma tabela "MySQL Workbench"
- se você deseja criar instruções INSERT para "PhpMyAdmin"
Em ambos os casos - você gerenciará dados diretamente em um documento Excel. Esta é a ferramenta que criei para uso pessoal e nunca utilizo a opção 1. Portanto, algumas limitações são aplicadas aí.
Como usar
Gerando o arquivo de saída
Um novo arquivo será criado no mesmo diretório onde está o arquivo Excel.
No caso 1:
- abra o Excel
- definir "nome do arquivo"
- defina "extensão de arquivo" como "csv"
- defina "usar instrução SQL .." como "Não"
- clique no botão "Gerar arquivo"
O arquivo pode então ser importado no ambiente de trabalho MySQL ( limitação atual - para tabelas diferentes você deve criar arquivos diferentes!! )
No caso 2:
- abra o Excel
- definir "nome do arquivo"
- defina "extensão de arquivo" como "txt"
- defina "usar instrução SQL .." como "Sim"
- clique no botão "Gerar arquivo"
Com este arquivo - você pode executar todas as inserções SQL no PhpMyAdmin, por exemplo.
Criação de planilhas (tabelas)
O problema é que você precisa saber as colunas exatas que possui nas tabelas, ao preencher os dados no Excel. Então criei um botão auxiliar, que irá gerar a nova “Planilha” no Excel, junto com os nomes das colunas, para que você tenha uma melhor capacidade de gerenciamento.
- vá para "bancada de trabalho MySQL"
- vá para a visualização do diagrama da sua tabela
- clique com o botão direito na tabela e use a opção chamada "Copiar modelo de inserção para a área de transferência"
- abrir documento Excel
- cole o modelo de inserção no campo "Inserir extrato"
- clique no botão "Adicionar planilha (tabela)"
PS: Um botão "Copiar modelo de inserção para a área de transferência" sempre gera dados no formato:
INSERT INTO `DATABASE`.`TABLE` (`COLUMN1`, `COLUMN2`, ...) VALUES (NULL, NULL, NULL, ...);
Portanto, se por algum motivo você não puder usar o Workbench, você mesmo poderá criar planilhas do Excel (usando as convenções abaixo OU criar você mesmo um "modelo de instrução de inserção".
Convenções
- O Excel sempre terá uma planilha "principal" e ela estará em primeiro lugar na lista
- A planilha (não principal) deve ter o nome correspondente ao nome da tabela para gerar os dados corretamente
- Na planilha não principal - a linha 1 pode ter um valor: NUMBER. Isso forçará a não utilização de aspas simples para o valor gerado
- Na planilha não principal - a linha 2 é o valor padrão para dados piores. Portanto, se você não estiver especificando nenhum valor nas linhas de dados -> o valor padrão será obtido da "linha 2"
- Na planilha não principal - a linha 3 são apenas nomes de colunas na tabela MySQL. Isto é apenas para sua própria conveniência. Não tem efeito em nada.
- Na planilha não principal - linha 4+. Estas são linhas com seus dados.
- Para todas as linhas de dados onde você não está colocando "NUMBER" na linha 1 - o script colocará automaticamente o valor entre aspas simples
- Se você estiver usando aspas duplas no valor da célula de dados - ele escapará automaticamente usando o símbolo então "se tornará"
Contribuindo
Se você é um desenvolvedor que deseja contribuir com o projeto - depois de alterar o VBA no próprio Excel - não se esqueça de exportar o módulo VBA para um arquivo .BAS separado e enviá-lo também, para que possamos acompanhar as alterações.