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
- Abra um arquivo
.csv,.tsvou.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. - 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.csvviraorders_2026. - Escolha os Tipos de valor, uma Chave primária opcional e se quer Gravar células vazias como NULL.
- Clique em Baixar SQLite e abra o arquivo, por exemplo com
sqlite3 orders.sqliteeSELECT * 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 coluna | Usados 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/false | Uma 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ária | Opcional. 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 NULL | Vem 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.
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> .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.