Ir para a ferramenta
ViewCSV
Sem upload de arquivos

Converter CSV em SQLite

orders.csv· DADOS DE EXEMPLO15 linhas · 8 colunas
Tipos de valor
Como texto, todos os valores ficam exatamente iguais. A detecção usa INTEGER e REAL quando todos os valores se encaixam.
orders.csv
#order_idcustomercityproductquantityunit_priceorder_datestatus
1001041Laura CostaPorto AlegreDesk lamp6224.922026-01-15shipped
2001042Arthur AlvesFortalezaMonitor 27"1172.722026-02-11refunded
3001043Miguel CostaRio de JaneiroCoffee beans 1kg7165.862026-03-07shipped
4001044Gael RodriguesBelo HorizonteMonitor 27"1131.362026-04-23shipped
5001045Alice OliveiraPorto AlegreUSB-C cable8·2026-05-25shipped
6001046Helena SouzaSalvadorCoffee beans 1kg171.082026-06-08refunded
7001047 Laura Gomes Porto AlegreCoffee beans 1kg389.842026-07-16pending
8001048Théo OliveiraFortalezaNotebook A5749.502026-08-26shipped
9001049Helena RodriguesSalvadorDesk lamp354.272026-09-27paid
10001050Heitor SantosCuritibaDesk lamp6138.902026-01-05pending
11001051Helena FerreiraCuritibaUSB-C cable76.102026-02-03refunded
12001052Valentina PereiraBelo HorizonteChair, ergonomic3106.722026-03-09shipped
13001053Laura AlvesFortalezaNotebook A56239.222026-04-12pending
14001054Valentina SouzaSão PauloChair, ergonomic9154.442026-05-25pending
15001043Miguel CostaRio de JaneiroCoffee beans 1kg7165.862026-03-07shipped

15 linhas · 1 arquivo Usa o mecanismo do SQLite (WebAssembly), baixado uma única vez de assets.viewcsv.app. Seus dados ficam nesta aba.

Abra ou cole um arquivo CSV, confira o Nome da tabela e clique em Baixar SQLite. Você recebe um arquivo de banco de dados .sqlite com uma tabela que guarda todas as linhas, pronto para o shell sqlite3, o DB Browser for SQLite, o Python ou qualquer biblioteca SQLite. Por padrão, toda coluna é TEXT, então 000417 continua 000417. O mecanismo do SQLite roda como WebAssembly no seu navegador; o CSV nunca é enviado.

Como converter CSV em SQLite

  1. Abra um arquivo .csv, .tsv ou .txt, arraste-o para a ferramenta ou cole as linhas. Confira a tabela na aba Entrada; se precisar, ajuste o delimitador, a linha de cabeçalho ou a codificação em Configurações de importação.
  2. Confira o Nome da tabela. Ele começa como o nome do arquivo, com espaços e pontuação trocados por sublinhados, então orders 2026.csv vira orders_2026.
  3. Escolha os Tipos de valor, uma Chave primária opcional e se quer Gravar células vazias como NULL.
  4. Clique em Baixar SQLite e abra o arquivo, por exemplo com sqlite3 orders.sqlite e SELECT * FROM orders LIMIT 10;.

Na primeira conversão, o mecanismo do SQLite (sql.js, compilado para WebAssembly) é baixado uma única vez de assets.viewcsv.app. Se esse download falhar, a ferramenta mostra um erro e você pode tentar de novo; o seu arquivo continua neste dispositivo.

Para converter muitos arquivos com as mesmas configurações, escolha Lote: converter vários arquivos. Cada arquivo vira um banco de dados próprio, com uma tabela que leva o nome dele, e todos são baixados juntos em um único ZIP. No modo em lote, cada arquivo pode ter no máximo 25 MB.

O que o banco de dados contém

Uma tabela, criada com CREATE TABLE "name" (…), com uma coluna para cada coluna do CSV na ordem original e todas as linhas inseridas em uma única transação. Não há índices, views nem colunas de ID extras.

Nomes de tabela e de colunaUsados exatamente como foram escritos, entre aspas duplas, então espaços, pontuação, palavras reservadas e nomes em escritas não latinas funcionam: consulte-os como "order date". Um cabeçalho em branco vira Column 3 e um repetido vira name (2).
Manter todos os valores como textoÉ o padrão. Toda coluna é declarada TEXT e guarda cada valor exatamente como foi escrito.
Detectar números e true/falseUma coluna em que todos os valores preenchidos são inteiros sem zeros à esquerda vira INTEGER; decimais com até 15 algarismos significativos viram REAL; colunas de true/false viram INTEGER com 1 e 0, porque o SQLite não tem tipo booleano. Datas e todo o resto continuam TEXT.
Chave primáriaOpcional. A coluna escolhida é declarada PRIMARY KEY. Os valores dela precisam ser únicos e não vazios; caso contrário, a ferramenta para antes de gravar o arquivo. Uma chave detectada como inteiro vira INTEGER PRIMARY KEY, o alias de rowid do SQLite.
Gravar células vazias como NULLVem ativada. Desative para guardar células vazias como a string vazia ''.

Quebras de linha, aspas e vírgulas dentro de valores CSV entre aspas são guardadas no valor sem alteração.

Solução de problemas

  • A conversão para na chave primária. A coluna escolhida tem um valor vazio ou repetido. Encontre duplicados com Validar CSV ou no visualizador de CSV, escolha outra coluna ou deixe a Chave primária como Nenhuma.
  • Não foi possível baixar o mecanismo. O arquivo WebAssembly do SQLite vem de assets.viewcsv.app. Verifique a conexão, o firewall ou o bloqueador de conteúdo e tente de novo.
  • O `SUM()` trata uma coluna como texto. A coluna é TEXT. Converta de novo com Detectar números e true/false; se ela continuar como texto, algum valor não é um número simples (1,234, 12 kg, 007). Ou faça a conversão no SQL: CAST(total AS REAL).
  • O arquivo é grande demais para esta ferramenta. A conversão para SQLite aceita arquivos de até 25 MB, 100.000 linhas, 250 colunas e 2 milhões de células. Para um arquivo maior, gere um script com CSV para SQL, que processa arquivos grandes em streaming, e rode-o com sqlite3.

Limites e privacidade

O CSV precisa abrir na área de trabalho do navegador: até 25 MB, 100.000 linhas, 250 colunas e 2 milhões de células. O banco de dados é montado na memória e exportado como um único arquivo.

O mecanismo roda em um worker em segundo plano nesta aba, então a página continua respondendo e Cancelar interrompe o processo. Só o arquivo do mecanismo é baixado; o CSV e o banco de dados nunca saem do seu dispositivo.

Exemplo

Um arquivo de pedidos com IDs que começam em zero, uma data vazia e uma observação em duas linhas, convertido com Detectar números e true/false, nome de tabela orders e order_id como Chave primária, depois aberto no shell sqlite3. total virou REAL e paid virou INTEGER 1/0, enquanto order_id e shipped_on continuaram TEXT. Com o padrão Manter todos os valores como texto, as seis colunas são TEXT e total mantém 129.50.

CSV
order_id,customer,total,paid,shipped_on,note
000417,"Okafor, Ada",129.50,true,2026-04-02,
000418,Mei Tan,15,false,,"Leave at door
side gate"
SQLite (shell sqlite3)
sqlite> .schema
CREATE TABLE "orders" ("order_id" TEXT PRIMARY KEY, "customer" TEXT, "total" REAL, "paid" INTEGER, "shipped_on" TEXT, "note" TEXT);

sqlite> SELECT order_id, total, typeof(total), paid, shipped_on, quote(note) FROM orders;
000417|129.5|real|1|2026-04-02|NULL
000418|15.0|real|0||'Leave at door
side gate'

Perguntas frequentes

Qual é a diferença entre esta página e CSV para SQL?

Esta página entrega um arquivo de banco de dados SQLite pronto para abrir. CSV para SQL gera um script de texto com comandos CREATE TABLE e INSERT que você mesmo executa, para SQLite ou para PostgreSQL, MySQL ou SQL Server, e consegue processar em streaming arquivos com mais de 25 MB.

Dá para acrescentar o CSV a um banco de dados existente?

Não diretamente; cada conversão cria um banco novo com uma tabela. A partir do seu banco existente, anexe o arquivo com ATTACH 'orders.sqlite' AS src; e copie as linhas com INSERT INTO … SELECT * FROM src.orders;.

Por que true e false são guardados como 1 e 0?

O SQLite não tem classe de armazenamento booleana; booleanos são inteiros. Com Detectar números e true/false, true vira 1 e false vira 0. No modo texto, eles continuam sendo as strings true e false.

Padrões e referências