Pular para o conteúdo

CSV para SQL

CSV to SQL

Gera comandos CREATE TABLE e INSERT a partir de uma tabela, com tipos inferidos e o dialeto escolhido.

Transforma uma tabela em instruções CREATE TABLE e INSERT para PostgreSQL, MySQL, SQLite ou SQL Server, com os tipos das colunas inferidos dos dados. Ele mostra as colunas como serão criadas antes de escrever qualquer coisa, que é onde você pega uma coluna numérica que entrou como texto.

🔒 Roda inteiramente no seu navegadorsqlcsvconvertdatabase

Solte o CSV que você quer como SQL

Lido nesta aba. Nada é enviado. Arquivos salvos pelo Excel em coreano, japonês, chinês e ocidental (CP949, Shift_JIS, GBK, Windows-1252) são reconhecidos.

Como usar

  1. Escolha o dialeto

    Ele decide o estilo de aspas, a sintaxe de autoincremento e o tipo de texto. O SQL Server recebe NVARCHAR em vez de VARCHAR, que é a diferença entre armazenar 한글 e armazenar pontos de interrogação.

  2. Confira os tipos inferidos

    A tabela acima do SQL mostra cada coluna, o identificador que ela vai receber, o seu tipo e se aceita nulo. Uma coluna que você esperava que fosse INTEGER aparecendo como TEXT significa que há um valor perdido nela.

  3. Defina o tamanho do lote

    Cem linhas por INSERT é um bom padrão. Uma por linha é mais fácil de depurar e muito mais lenta de executar.

Perguntas frequentes

Por que todo identificador está entre aspas?

Porque uma coluna chamada order, group ou desc é uma palavra reservada, e colocar aspas só quando necessário significa acertar a lista de palavras reservadas de quatro dialetos. Colocar aspas incondicionalmente é sem graça e sempre funciona.

Nomes de coluna com acentos ou em coreano são seguros?

Nos quatro dialetos, quando entre aspas, sim. Se o seu servidor os recusar mesmo assim, a opção só-ASCII translitera os identificadores deixando os dados em paz.

O que acontece com aspas dentro dos meus dados?

Elas são duplicadas, que é o escape padrão do SQL. Para MySQL, as barras invertidas também são duplicadas, porque só o MySQL trata uma barra invertida como escape dentro de um literal — sem isso, C:\temp chega ao banco de dados com uma tabulação dentro.

Célula vazia ou NULL?

Sua escolha, e importa: em SQL, uma string vazia é um valor e NULL é a ausência de um, e eles se comportam diferente em comparações, em COUNT e em um índice único. NULL é o padrão.

Pode receber de

Em seguida

Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.