Conversor de SQL para CSV

Às vezes, a única cópia dos dados de que você precisa é um arquivo .sql de um backup, um despejo de instruções INSERT INTO users (id, email, created_at) VALUES (...). Carregá-lo em um banco de dados só para exportá-lo de novo é lento. Este conversor lê a lista de colunas e cada tupla de VALUES diretamente da sintaxe do INSERT e gera um CSV que você pode abrir no Excel, no Google Sheets, no Numbers ou no pandas sem nunca restaurar o esquema.

Como converter INSERT de SQL para CSV

  1. 1

    Cole o SQL

    Solte uma ou mais instruções INSERT. Blocos VALUES (...) de uma linha e de várias linhas são aceitos.

  2. 2

    Colunas detectadas automaticamente

    O analisador lê a lista `(col1, col2, ...)` logo antes de VALUES e a trata como a linha de cabeçalho do CSV.

  3. 3

    Linhas extraídas

    Cada tupla `(val1, val2, ...)` vira uma linha do CSV. As strings entre aspas simples têm as aspas removidas; números e NULL passam como texto.

  4. 4

    Copie o CSV

    Pegue a saída CSV e cole em uma planilha, ou salve-a com a extensão `.csv`.

O que o analisador aceita

INSERT INTO users (id, email, created_at) VALUES
  (1, 'alice@example.com', '2024-01-12 09:00:00'),
  (2, 'bob@example.com',   '2024-01-13 10:30:00'),
  (3, 'carol@example.com', '2024-01-13 11:15:00');

Vira:

id,email,created_at
1,alice@example.com,2024-01-12 09:00:00
2,bob@example.com,2024-01-13 10:30:00
3,carol@example.com,2024-01-13 11:15:00

Regras de escape de CSV aplicadas

  • O delimitador é sempre uma vírgula; não há opção de separador.
  • Campos que contêm vírgulas, aspas duplas ou quebras de linha são envolvidos em aspas duplas.
  • Aspas duplas internas são duplicadas (" vira ""), conforme a RFC 4180.
  • As aspas simples iniciais e finais dos literais de string SQL são removidas.
  • O NULL do SQL passa como o texto literal NULL; substitua-o depois se sua ferramenta espera células vazias.

Limitações a conhecer

  • Lista de colunas obrigatória. O analisador lê o cabeçalho da lista (col1, col2, ...) antes de VALUES. Um INSERT INTO t VALUES (...) sem a lista de colunas produz linhas de CSV sem cabeçalho.
  • Uma tabela por vez. Se o seu despejo mistura INSERT de tabelas diferentes, separe-os antes. Linhas de larguras diferentes produzem um CSV irregular.
  • Sem análise de CREATE TABLE. Os tipos de coluna não são usados. Datas, JSON e blobs binários vêm como texto puro.
  • Cada grupo de parênteses vira uma linha. O analisador transforma cada grupo (...) em uma linha, então cláusulas finais que contêm parênteses (ON DUPLICATE KEY UPDATE, RETURNING), chamadas de função como NOW() ou arrays aninhados como (1,2,3) dentro de um valor adicionam linhas extras. Limite a entrada a tuplas INSERT ... VALUES simples e substitua essas expressões por literais antes de colar.

Perguntas frequentes

Sim, desde que o INSERT siga a forma padrão INSERT INTO table (cols) VALUES (...), comum a esses bancos de dados. A ferramenta não executa um analisador SQL completo: ela extrai a lista de colunas e as tuplas de valores entre parênteses, então mantenha cada instrução na sintaxe INSERT simples.

Vírgulas dentro de strings SQL entre aspas simples são preservadas. Na saída, qualquer campo que contenha uma vírgula, aspas ou quebra de linha é envolvido em aspas duplas e as aspas internas são duplicadas, conforme a RFC 4180. Valores que contêm parênteses podem não se dividir corretamente.

Não. Seu SQL é enviado ao nosso servidor, analisado em uma única passagem e devolvido, então mantenha a entrada em alguns megabytes por vez. Para despejos muito grandes, divida o arquivo em partes (um bloco INSERT por parte) e converta-as em pedaços.

Não, a saída é um CSV plano. Tipos de coluna, índices e restrições ficam no CREATE TABLE e estão fora do escopo deste conversor.

Seu SQL é enviado ao nosso servidor apenas para produzir o CSV e não é armazenado; guardamos uma contagem anônima de quantas linhas foram convertidas, nunca o texto do SQL.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas