IA no seu dispositivo — profissional e privado.

Converter CSV para SQL

CSV para SQL com tipos de coluna reais, seis dialetos, sem envio.

  • Corre no seu dispositivo
  • 6 dialetos · de MySQL a Oracle
  • Um arquivo grátis · Lotes com Pro

Solte aqui um arquivo CSV

CSV, TSV ou TXT, até 25.0 MB

Nada carregado

Adicione um arquivo CSV ou cole texto CSV para ver os dados analisados e o SQL que produzem.

Configurações de SQL
Saída
Tabela
Estilo dos nomes
Aspas
Leitura do arquivo
0

Mudar isto volta a ler o arquivo. Tudo o resto só remodela a saída.

Valores
Células vazias

As células vazias passam a NULL por padrão. Acrescente marcadores se a sua exportação os usar.

Lotes
Pro

A versão gratuita converte um arquivo de cada vez. O Pro converte até 50 e entrega um ZIP.

Como converter CSV em SQL

  1. 1

    Adicione o seu CSV

    Arraste um arquivo .csv, .tsv ou .txt para a página, ou abra a caixa de colagem e cole texto CSV diretamente.

  2. 2

    Escolha o banco de dados

    Escolha MySQL, PostgreSQL, SQLite, SQL Server, Oracle ou SQL padrão. Citação, escape, nomes de tipos e literais de data seguem a sua escolha.

  3. 3

    Escolha o tipo de instrução

    Um INSERT por linha, INSERT agrupado, CREATE TABLE, UPDATE, DELETE ou MERGE. Nos três últimos, marque as colunas-chave em que a cláusula WHERE se deve apoiar.

  4. 4

    Verifique as colunas

    A aba Colunas mostra o tipo inferido para cada coluna e o tipo SQL exato que vai produzir. Pode substituir qualquer um e desmarcar as colunas que não quer.

  5. 5

    Gere e baixe

    Gere o script e baixe o arquivo .sql ou copie-o. Nada é enviado em momento algum.

O que esta ferramenta CSV para SQL oferece

Gere SQL limpo a partir de CSV com controle de delimitador e codificação, nome de tabela personalizado, mapeamento de cabeçalhos e exportação rápida. Os valores são escapados para o banco de dados escolhida, as colunas recebem tipos reais em vez de serem citadas como texto, e toda a conversão roda no seu dispositivo.

  • Seis dialetos de banco de dados. MySQL e MariaDB, PostgreSQL, SQLite, SQL Server, Oracle e SQL padrão, cada um com a sua citação, escape, nomes de tipos e literais de data.
  • Sete tipos de instrução. Um INSERT por linha, INSERT agrupado, CREATE TABLE, DROP mais CREATE mais INSERT, UPDATE, DELETE, e MERGE ou UPSERT.
  • Tipos de coluna reais. Inteiros, inteiros grandes, decimais, ponto flutuante, booleanos, datas, marcas temporais, horas e texto dimensionado, inferidos a partir de todas as linhas e não de uma amostra.
  • Substituição por coluna. Se não concordar com a inferência, defina o tipo você mesmo, ou desmarque uma coluna para que nunca chegue ao banco de dados.
  • Tratamento de NULL. As células vazias passam a NULL ou a string vazia, e pode nomear marcadores NULL próprios como \N, NA ou NULL.
  • Identificadores seguros. Palavras reservadas, nomes começados por dígito, nomes duplicados e nomes longos demais para o banco de dados são todos resolvidos antes de poderem partir o script.
  • Duas pré-visualizações. Uma grade de dados a mostrar o que foi analisado e o tipo de cada coluna, e uma pré-visualização SQL ao vivo das instruções que vai baixar.
  • Nada é enviado. O arquivo é lido, convertido e escrito no seu dispositivo, por isso funciona sem conexão e no celular depois de a página carregar.

Escolher um dialeto SQL

O dialeto é a primeira definição a acertar, porque muda muito mais do que os nomes dos tipos. A citação, o escape de strings, os literais booleanos e de data, a cláusula de identidade e a forma de um upsert são todos diferentes, e um script escrito para um banco de dados é frequentemente inválido noutra.

  • MySQL e MariaDB. Identificadores entre acentos graves, barras invertidas escapadas dentro das strings, booleanos como 1 e 0, AUTO_INCREMENT, e ON DUPLICATE KEY UPDATE para upserts.
  • PostgreSQL. Identificadores entre aspas duplas, barras invertidas intactas porque as strings padrão são o padrão, TRUE e FALSE reais, literais DATE e TIMESTAMP, colunas de identidade e ON CONFLICT DO UPDATE.
  • SQLite. Aspas duplas, afinidade de tipo respeitada em vez de inventada, AUTOINCREMENT numa chave primária inteira, e ON CONFLICT DO UPDATE.
  • SQL Server. Identificadores entre parênteses retos, prefixo N em qualquer literal com texto não ASCII para que os acentos sobrevivam, colunas NVARCHAR a condizer, IDENTITY com a respetiva proteção de INSERT, e MERGE para upserts.
  • Oracle. Aspas duplas, limite de 30 caracteres nos identificadores, TO_DATE e TO_TIMESTAMP com máscaras explícitas para que o formato de data da sessão não altere o significado, um bloco PL/SQL para a eliminação condicional, e MERGE contra dual.
  • SQL padrão. Sintaxe ANSI portável para tudo o que não esteja na lista, ou como ponto de partida que tenciona ajustar.

Mudar de dialeto nunca volta a ler o arquivo, por isso é instantâneo mesmo numa exportação grande. Mude, veja a pré-visualização SQL e mude outra vez até o script ficar como o seu cliente de banco de dados aceita.

Os tipos de instrução explicados

Trabalhos diferentes pedem instruções diferentes. Carregar uma tabela nova não é o mesmo que corrigir linhas que já existem, e gerar INSERT para o segundo caso é como se acaba com duplicados.

  • INSERT. Uma instrução por linha. A saída mais legível e a mais fácil de editar à mão ou de usar para carregar algumas centenas de linhas.
  • INSERT agrupado. Uma instrução por grupo de linhas, com o tamanho do lote sob o seu controle. Muito mais rápido de executar num carregamento grande, e cerca de metade do tamanho de arquivo.
  • CREATE TABLE. Apenas a definição da tabela, com tipos inferidos, NOT NULL onde os dados não têm falhas, e chave primária opcional.
  • DROP, CREATE e INSERT. Todo o script num arquivo: remover a tabela antiga se existir, criá-la e depois enchê-la. É esta a escolha para um carregamento repetível.
  • UPDATE. Uma instrução por linha, que define todas as colunas não-chave e se apoia nas colunas-chave que marcar.
  • DELETE. Uma instrução por linha, pelas colunas-chave. Útil para remover uma lista exata de registros.
  • MERGE ou UPSERT. Insere a linha se for nova e atualiza-a se já existir. Escrito na forma que a seu banco de dados realmente suporta.

Colunas-chave

UPDATE, DELETE e MERGE precisam de saber que colunas identificam uma linha. Marque-as na aba Colunas. Se não marcar nenhuma, é usada a primeira coluna e a ferramenta di-lo, porque um UPDATE sem cláusula WHERE reescreveria todas as linhas da tabela. Quando uma coluna-chave não tem valor, a instrução é escrita com IS NULL em vez de = NULL, que nunca corresponderia a nada.

Tipos de coluna, e o que é deliberadamente não adivinhado

Cada célula de cada linha é lida antes de ser escrita uma única instrução, por isso os tipos declarados descrevem o arquivo inteiro e não os primeiros milhares de linhas. Uma coluna toma o tipo mais estreito que caiba em tudo, e qualquer divergência alarga-a para texto em vez de deitar fora um valor.

  • Inteiros. Até nove dígitos dão um inteiro, até dezanove um inteiro grande, e mais do que isso um decimal exato, por isso um número de conta com vinte dígitos nunca é arredondado.
  • Decimais e ponto flutuante. A precisão e a escala vêm da parte inteira mais larga e da parte fracionária mais larga de toda a coluna, por isso uma coluna com 1234 e 1.5 é dimensionada para ambos. Valores em notação exponencial dão uma coluna de ponto flutuante.
  • Booleanos. Apenas as palavras true, false, yes e no. Mais abaixo explica-se porque 1 e 0 não entram.
  • Datas e marcas temporais. Apenas ISO 8601, e a data é validada contra o calendário, por isso 2026-02-30 fica como texto em vez de se tornar uma data inválida.
  • Texto. Dimensionado ao valor mais longo do arquivo e arredondado para o patamar seguinte, para que a importação seguinte não falhe num valor com um caractere a mais.

O que fica como texto de propósito

Quatro casos parecem outra coisa e não são. Adivinhá-los é como um conversor destrói dados em silêncio enquanto produz uma saída de aspeto impecável.

  • Zeros à esquerda. 007, 01730 e 0044 são uma posição, um código postal e um indicativo telefónico. Como inteiros passam a 7, 1730 e 44, e os zeros desaparecem do banco de dados para sempre.
  • Um mais à esquerda. +15551234567 encaixa perfeitamente como inteiro e é um número de telefone. Como número perde o mais e o seu significado.
  • Datas ambíguas. 03/04/2026 é 3 de abril em quase todo o mundo e 4 de março nos Estados Unidos, e nada num CSV o resolve. Uma coluna inteira pode ser coerente sob ambas as leituras durante anos.
  • Marcas de uma só letra. Uma coluna de t, f, y e n é uma convenção booleana e é também uma nota, uma inicial e um código de categoria. As palavras true, false, yes e no são inequívocas; as letras não.

Nada disto é um muro. Todos estes casos podem ser definidos à mão na aba Colunas, e uma substituição explícita é cumprida à letra, letras isoladas incluídas. A diferença é que nunca se adivinha por si. Quando uma substituição não pode ser satisfeita por uma célula concreta, esse valor é escrito como NULL e a ferramenta informa quantas células foram afetadas, em vez de fazer o script falhar centenas de instruções mais à frente.

NULL, strings vazias e valores em falta

Uma medição em falta e uma medição de nada são dois fatos diferentes, e assim que ambos forem uma string vazia no banco de dados nada mais os distingue. A versão anterior desta ferramenta escrevia cada célula vazia como string vazia sem qualquer forma de o mudar.

  • Células vazias como NULL. O padrão, e o que quase todas as importações querem. A coluna também é marcada como aceitando NULL no CREATE TABLE.
  • Células vazias como string vazia. Para carregar numa tabela existente cujas colunas estão declaradas NOT NULL.
  • Marcadores NULL próprios. As exportações escritas pelo mysqldump usam \N, e muitas planilhas mantidas à mão usam NA, N/A ou a palavra NULL. Indique os que o seu arquivo usa, separados por vírgulas, e passam a NULL reais.
  • NULL numa coluna-chave. Escrito como IS NULL na cláusula WHERE, nunca como = NULL, que em SQL nunca é verdadeiro e não corresponderia silenciosamente a nenhuma linha.
  • Caracteres que nenhum banco de dados armazena. Os bytes nulos são removidos e contados, porque o PostgreSQL rejeita-os por completo enquanto o MySQL trunca o valor nesse ponto. É-lhe dito quantos foram afetados em vez de lhe darem três respostas erradas diferentes.

Nomes de tabelas e colunas

Um cabeçalho de planilha não é um identificador SQL, e transformar um no outro é precisamente onde a versão anterior desta ferramenta produzia scripts que nenhum banco de dados aceitava. Há quatro problemas a resolver antes de um nome ser seguro de escrever.

  • Palavras reservadas. order, group, key, desc, from e table são cabeçalhos de coluna comuns e todos eles são reservados. São citados automaticamente.
  • Nomes começados por dígito. 1st e 2nd não podem ser escritos sem aspas em nenhum dialeto. São citados em vez de deformados.
  • Nomes duplicados. col-1 e col.1 dobram-se ambos para col_1. O segundo passa a col_1_2, e a verificação ignora maiúsculas porque o MySQL em Windows e o SQL Server tratam Total e total como a mesma coluna.
  • Nomes longos demais. O Oracle permite trinta caracteres, o PostgreSQL sessenta e três, o MySQL sessenta e quatro. Os nomes longos são cortados para caberem, e qualquer colisão criada por esse corte é resolvida a seguir.

Dois estilos de nome

Nomes limpos dobra um cabeçalho para minúsculas, dígitos e sublinhados, por isso First Name passa a first_name e Café Total passa a cafe_total. Manter original guarda o cabeçalho exatamente como o escreveu e cita-o onde o banco de dados exigir. Não há de propósito uma terceira opção que dispense as aspas, porque uma palavra reservada ou um espaço não têm escrita sem aspas e essa definição só poderia produzir um script quebrado.

Por que converter CSV para SQL?

Um CSV é como os dados saem de uma planilha e um script SQL é como entram num banco de dados. Passar de um ao outro à mão é lento e sujeito a erros, e os erros são do tipo silencioso.

  • Povoar um banco de dados. Dados de referência, tabelas de consulta e dados de teste vivem em planilhas e têm de chegar ao banco de dados como instruções repetíveis e revisíveis.
  • Dados de teste. Um script gerado pode ser versionado ao lado do código e voltar a correr em cada ambiente novo.
  • Migrações e cargas pontuais. Um script pode ser lido, editado e aplicado pelo processo de revisão que o banco de dados já tem, coisa que uma importação em massa por interface não permite.
  • Trabalhar sem assistente de importação. Muitos bancos de dados em produção só são acessíveis por um cliente SQL, e um arquivo .sql é o único formato que todos aceitam.
  • Corrigir linhas existentes. UPDATE e MERGE transformam uma planilha corrigida nas instruções exatas necessárias para alinhar com ela uma tabela em produção.

As opções de leitura explicadas

Estas configurações controlam como o arquivo é lido, antes de ser escrito qualquer SQL. Mudar uma delas volta a ler o arquivo; tudo o resto só remodela a saída.

  • Delimitador. Automático, vírgula, ponto e vírgula, tabulação ou barra vertical. O automático analisa uma amostra com cada candidato e fica com o que dá larguras de linha mais regulares, por isso uma vírgula dentro de um endereço entre aspas não o engana.
  • Caractere de aspas. Automático, aspas duplas, aspas simples, ou nenhum. Existem arquivos citados com aspas simples, e lê-los com o caractere errado funde linhas.
  • Codificação. Automática, UTF-8, UTF-16LE, UTF-16BE, Windows-1252 ou ISO-8859-1. Uma marca de ordem de bytes no arquivo ganha sempre à lista, porque um arquivo que declara a sua própria codificação ganha a um palpite.
  • A primeira linha é cabeçalho. Ligado por padrão. Desative-o e as colunas são nomeadas por posição, sendo a primeira linha tratada como dados.
  • Ignorar linhas. Para exportações que começam com um título, uma marca de data ou uma linha em branco antes do cabeçalho verdadeiro.
  • Inferir tipos de coluna. Ligado por padrão. Desative-o e cada coluna passa a texto dimensionado, que é o que se quer ao carregar numa tabela de estágio já existente.

Quando usar cada delimitador

Deixe primeiro o delimitador em Automático. Defina-o à mão só quando a pré-visualização mostrar o arquivo a ser lido de forma errada.

  • Vírgula. O padrão, e o que dá o nome ao formato. A maioria das exportações de software em inglês.
  • Ponto e vírgula. O que o Excel escreve em boa parte da Europa, onde a vírgula é o separador decimal.
  • Tabulação. Arquivos TSV, e tudo o que é copiado diretamente de uma planilha para um arquivo de texto.
  • Barra vertical. Comum em pipelines de dados e extrações de mainframe, onde os próprios dados podem conter vírgulas e pontos e vírgulas.

Arquivos suportados e limites

A lista é fechada. Tudo o que não esteja nela é recusado na caixa de arquivos com uma frase a dizer o que é e para onde levá-lo, em vez de ser aceite e falhar mais tarde.

O que pode converter

  • .csv com qualquer um dos quatro delimitadores e qualquer uma das cinco codificações.
  • .tsv exportações separadas por tabulações.
  • .txt texto delimitado sob qualquer extensão que a planilha tenha escrito.
  • Texto colado. Cole CSV diretamente na página sem salvar primeiro um arquivo.

O que é recusado, e para onde ir em vez disso

  • Pastas de trabalho do Excel. Um .xlsx ou .xls é um arquivo comprimido, não texto delimitado. Converta-o primeiro para CSV.
  • JSON. Use primeiro a ferramenta JSON para CSV e traga aqui o resultado.
  • Arquivos com uma imagem ou um arquivo sob um nome .csv. Detectados pelo conteúdo e não pela extensão, e recusados antes de se analisar seja o que for.
  • Arquivos vazios. Recusados com uma mensagem em vez de produzirem um script vazio.

Limites de tamanho e de lote

A versão gratuita converte um arquivo de cada vez, até 25 MB, com todos os dialetos, tipos de instrução, substituições de tipo e configurações de NULL disponíveis. O Pro converte até 50 arquivos de uma vez e entrega-os num único ZIP, e é limitado pelo que o seu dispositivo aguenta em vez de por um número fixo. Nada do que torna o SQL correto está atrás da barreira de pagamento, porque um script que não roda não é um acabamento premium.

Como funciona a geração de CSV para SQL

O arquivo é decodificado, o delimitador e o caractere de aspas são detectados analisando uma amostra e pontuando o quão retangular cada leitura fica, e as linhas são analisadas por um leitor que percebe campos entre aspas com delimitadores e quebras de linha lá dentro. Depois cada célula é classificada, e cada coluna toma o tipo mais estreito que serve a todos os seus valores.

O script é escrito por pedaços e enviado diretamente para um arquivo em vez de ser montado como um único bloco enorme de texto, que é o que permite produzir um script de 23 MB sem a página deixar de responder. A pré-visualização mostra as primeiras instruções de imediato, para que veja o que vai baixar antes de o baixar.

No seu dispositivo, não nos nossos servidores

Não há passo de envio nem servidor envolvido na conversão. O arquivo é lido do disco para a página, convertido aí, e escrito de volta como download. Depois de a página carregar pode desligar a rede e continua funcionando, que é a única versão de uma promessa de privacidade que consegue verificar por si mesmo.

Uma exportação de 10 MB com 104.000 linhas é lida, tipada e escrita como um script SQL de 23 MB em cerca de um segundo, sem que a página alguma vez pare.

Perguntas frequentes

Que SQL é que esta ferramenta gera, e como?

Analisa o seu CSV, determina o que cada coluna contém e escreve as instruções que escolher: um INSERT por linha, um INSERT agrupado com várias linhas, um CREATE TABLE com tipos de coluna reais, um UPDATE ou DELETE por colunas-chave, ou um MERGE / UPSERT. Os identificadores só levam aspas onde o banco de dados exige, os valores são escapados conforme o dialeto escolhido, e os números são escritos como números e não como strings entre aspas.

Os meus dados CSV mantêm-se privados?

Sim. Toda a conversão roda no seu dispositivo e nada é enviado, por isso dados iniciais, exportações de clientes e registros confidenciais nunca saem da máquina onde está. Isso significa também que a ferramenta continua funcionando sem rede depois de a página carregar.

Que bancos de dados e tipos de instrução são suportados?

Seis dialetos: MySQL e MariaDB, PostgreSQL, SQLite, SQL Server, Oracle e SQL padrão. Sete tipos de instrução: INSERT, INSERT agrupado, CREATE TABLE, DROP mais CREATE mais INSERT, UPDATE, DELETE e MERGE / UPSERT. Todos os dialetos e todos os tipos de instrução são gratuitos.

Como são decididos os tipos de coluna, e posso alterá-los?

Cada célula de cada linha é lida, e uma coluna passa a inteiro, decimal, booleano, data, marca temporal ou texto conforme o que realmente contém. Tudo o que é ambíguo fica como texto de propósito: valores com zeros à esquerda como 007 mantêm os zeros, e datas como 03/04/2026 nunca são adivinhadas como dia primeiro ou mês primeiro. A aba Colunas mostra o que foi inferido e permite substituir qualquer coluna.

O que acontece a células vazias, aspas e barras invertidas?

As células vazias passam a NULL por padrão, e pode mudá-las para string vazia ou acrescentar marcadores NULL próprios como \N ou NA. As aspas simples dentro dos valores são duplicadas, e as barras invertidas só são escapadas para MySQL, porque o MySQL trata a barra invertida como caractere de escape dentro de uma string, ao passo que PostgreSQL, SQLite, SQL Server e Oracle não. Os valores não ASCII recebem um prefixo N no SQL Server para que o texto acentuado sobreviva.

Que delimitadores, aspas e codificações são suportados?

O delimitador e o caractere de aspas são detectados analisando uma amostra e pontuando a regularidade do resultado, por isso uma vírgula dentro de um endereço entre aspas não engana. Também pode definir vírgula, ponto e vírgula, tabulação ou barra vertical à mão. Os arquivos são lidos como UTF-8, UTF-16LE, UTF-16BE, Windows-1252 ou ISO-8859-1, e uma marca de ordem de bytes no arquivo tem sempre prioridade sobre a lista pendente.

É gratuito, e que tamanho de arquivo posso converter?

Todos os dialetos, tipos de instrução, substituições de tipo e configurações de NULL são gratuitos. A versão gratuita converte um arquivo de cada vez até 25 MB; o Pro acrescenta lotes de até 50 arquivos entregues num único ZIP, e é limitado pelo que o seu dispositivo aguenta em vez de por um número fixo.

4.8de 5

de 128 avaliações

Avalie esta ferramenta

Toque numa estrela — leva um segundo