A conversão SQL (SQL Conversion) consiste em extrair dados de um script SQL e reorganizá-los em outros formatos de dados como JSON, CSV, XML, YAML, HTML ou Markdown. SQL (Structured Query Language, linguagem de consulta estruturada) é a linguagem de consulta padrão dos bancos de dados relacionais. As ferramentas de exportação de banco de dados (mysqldump, pg_dump) geralmente produzem os dados na forma de instruções INSERT dentro de um script SQL. Esse formato, embora prático para importação em bancos de dados, é incômodo para leitura por programas, análise de dados ou intercâmbio entre sistemas, daí a necessidade de convertê-lo para formatos mais universais.
Os scripts comuns de exportação de dados SQL contêm dois tipos de instruções: CREATE TABLE define a estrutura da tabela (nomes de colunas, tipos de dados, restrições), e INSERT INTO ... VALUES (...) insere os dados propriamente ditos. Esta ferramenta analisa ambos os tipos de instruções: extrai as definições de colunas e as informações de tipo do CREATE TABLE, e as linhas de dados reais do INSERT, e depois reorganiza a saída no formato escolhido pelo usuário. Todo o processo de análise é realizado localmente no navegador, sem depender de nenhum serviço backend.
Por que é necessário converter SQL em outros formatos? SQL, embora universal, é pouco prático nos seguintes cenários: primeiro, um programa frontend lê JSON muito mais facilmente do que SQL, sem precisar integrar um analisador SQL; segundo, planilhas como Excel ou Google Sheets suportam nativamente CSV, não SQL; terceiro, YAML e Markdown são mais legíveis do que SQL em cenários de configuração e documentação; quarto, o intercâmbio de dados entre sistemas costuma empregar XML ou JSON como formato neutro. Uma vez convertido para esses formatos universais, os dados podem ser consumidos diretamente por mais ferramentas e linguagens.
O analisador SQL desta ferramenta é escrito à mão e se concentra nas instruções INSERT e CREATE TABLE. Para INSERT, suporta tanto tuplas de valor único (INSERT INTO t (a,b) VALUES (1,2)) quanto tuplas multivalor (INSERT INTO t (a,b) VALUES (1,2), (3,4), (5,6)), mapeando automaticamente os dados aos nomes das colunas. Para CREATE TABLE, analisa definições de colunas, tipos de dados (VARCHAR(255), INT, DECIMAL(10,2) etc., com comprimento entre parênteses), e restrições e cláusulas como NOT NULL, PRIMARY KEY, IF NOT EXISTS, tratando corretamente os parênteses aninhados para evitar divisões errôneas.
O reconhecimento de tipos é essencial para a conversão SQL. A ferramenta determina automaticamente o tipo a partir da forma literal do valor: strings com aspas simples ou duplas são strings; NULL (sem distinguir maiúsculas/minúsculas) é o valor nulo; TRUE/FALSE são booleanos; 0x..., X'...', B'...' são literais hexadecimais; e números puros (com sinal, separador decimal, notação científica) são números. Esse reconhecimento automático de tipos garante que JSON, CSV e outros formatos preservem a semântica dos dados originais (por exemplo o número 1 e não a string "1"), para que os programas posteriores processem os valores corretamente.
As diferenças nos estilos de aspas de identificador entre dialetos são uma armadilha comum na análise SQL. O MySQL usa por padrão a crase (`) para envolver identificadores (nomes de tabelas e colunas), o PostgreSQL as aspas duplas ("), o SQL Server/T-SQL os colchetes ([]), e o SQL padrão também aspas duplas. A função unquoteIdentifier desta ferramenta reconhece e remove automaticamente essas aspas, tratando também os escapes internos (por exemplo `` → `, "" → "). No modo de reconstrução SQL, INSERT pode ser regenerado com o estilo de aspas do dialeto destino escolhido.
O escape de strings SQL é outro ponto técnico essencial. O padrão SQL estabelece que as aspas simples dentro de uma string são escapadas por duplicação ('It''s' representa It's). O MySQL admite ainda o escape com barra invertida (\n, \t, \', \", \\, \0, \Z). O analisador de strings desta ferramenta trata ambos os mecanismos de escape e restaura corretamente o conteúdo original. Na conversão para CSV, os campos com vírgula, aspa ou quebra de linha são reescapados em conformidade com RFC 4180; na conversão para XML/HTML, os caracteres especiais &, <, >, ", ' são escapados.
O processamento puramente frontend é um princípio de design fundamental desta ferramenta. Todas as etapas de análise SQL e conversão de dados são executadas no motor JavaScript do navegador, sem enviar nenhum dado a um servidor. Isso significa que mesmo se o script SQL contiver informações pessoais, dados comerciais sensíveis ou a estrutura interna de um banco de dados, nada vaza para o exterior. Essa abordagem é especialmente adequada para exports de bancos de dados de produção, sem preocupações de conformidade de dados. Ao mesmo tempo, o processamento frontend elimina a latência de rede; a velocidade de conversão é limitada apenas pela CPU e pela memória do dispositivo.
Comparado às ferramentas tradicionais de conversão SQL em linha de comando (sql2csv, sqlparser), esta ferramenta oferece várias vantagens: não requer instalação nem configuração de ambiente, é usada diretamente da página web; interface visual com pré-visualização em tempo real do resultado; alternância com um clique entre vários formatos de saída; dados de exemplo e documentação integrados; design responsivo móvel utilizável de qualquer lugar. Em contrapartida, a ferramenta é focada na extração de dados e não trata diferenças complexas entre dialetos (operadores JSONB do PostgreSQL, ON DUPLICATE KEY UPDATE do MySQL) nem recursos avançados (procedimentos armazenados, funções, gatilhos). Para esse tipo de necessidade, use ferramentas nativas de banco de dados ou plataformas ETL especializadas.
Ao usar a ferramenta de conversão SQL, convém observar algumas boas práticas: primeiro, antes de converter, verificar se o script SQL contém dados completos (instruções INSERT) e não apenas consultas (SELECT), pois SELECT não é analisado; segundo, para scripts SQL com várias tabelas, ativar «Saída separada por tabelas» para preservar as informações de estrutura; terceiro, para SQL com caracteres chineses, ativar «Incluir BOM» na saída CSV para que o Excel reconheça a codificação; quarto, para dumps SQL grandes, desativar «saída formatada» para reduzir o volume de saída; quinto, para migrar entre bancos de dados, usar o modo «Reconstrução SQL» para mudar de dialeto, tendo em conta que tipos complexos (arrays do PostgreSQL, JSONB) podem exigir ajustes manuais.