Aller directement à l’outil
ViewCSV
Aucun envoi de fichier

Convertir un CSV en SQLite

orders.csv· DONNÉES D’EXEMPLE15 lignes · 8 colonnes
Types de valeurs
En texte, chaque valeur est conservée telle quelle. La détection utilise INTEGER et REAL lorsque toutes les valeurs s’y prêtent.
orders.csv
#order_idcustomercityproductquantityunit_priceorder_datestatus
1001041Emma MoreauMontréalChair, ergonomic5111.682026-01-10pending
2001042Ambre LaurentBordeauxNotebook A59176.232026-02-26pending
3001043Gabriel DurandToulouseNotebook A54199.262026-03-01paid
4001044Jules ThomasBordeauxMonitor 27"2143.232026-04-25paid
5001045Louise MartinMontréalNotebook A51·2026-05-25refunded
6001046Jade MartinMontréalMonitor 27"4179.752026-06-03shipped
7001047 Ambre Petit ParisChair, ergonomic1186.032026-07-08refunded
8001048Emma BernardToulouseChair, ergonomic2121.162026-08-14refunded
9001049Gabriel BernardLyonDesk lamp416.492026-09-06pending
10001050Emma LeroyNantesChair, ergonomic1209.762026-01-24refunded
11001051Arthur MoreauMontréalUSB-C cable599.142026-02-06refunded
12001052Gabriel DuboisToulouseMonitor 27"223.642026-03-22refunded
13001053Ambre LeroyToulouseDesk lamp655.902026-04-15shipped
14001054Léo LaurentLyonUSB-C cable498.002026-05-13shipped
15001043Gabriel DurandToulouseNotebook A54199.262026-03-01paid

15 lignes · 1 fichier Utilise le moteur SQLite (WebAssembly), téléchargé une seule fois depuis assets.viewcsv.app. Vos données restent dans cet onglet.

Ouvrez ou collez un fichier CSV, vérifiez le Nom de la table, puis choisissez Télécharger en SQLite. Vous obtenez un fichier de base de données .sqlite contenant une table avec toutes les lignes, prêt pour le shell sqlite3, DB Browser for SQLite, Python ou toute bibliothèque SQLite. Par défaut, chaque colonne est de type TEXT : 000417 reste donc 000417. Le moteur SQLite s’exécute en WebAssembly dans votre navigateur ; le CSV n’est jamais envoyé.

Convertir un CSV en SQLite, étape par étape

  1. Ouvrez un fichier .csv, .tsv ou .txt, déposez-le sur l’outil ou collez des lignes. Vérifiez le tableau dans l’onglet Entrée ; si besoin, réglez le séparateur, la ligne d’en-têtes ou l’encodage dans Paramètres d’importation.
  2. Vérifiez le Nom de la table. Par défaut, c’est le nom du fichier, dont les espaces et la ponctuation deviennent des traits de soulignement : orders 2026.csv devient orders_2026.
  3. Choisissez les Types de valeurs, une Clé primaire facultative, et indiquez s’il faut Écrire les cellules vides en NULL.
  4. Choisissez Télécharger en SQLite, puis ouvrez le fichier, par exemple avec sqlite3 orders.sqlite et SELECT * FROM orders LIMIT 10;.

La première conversion télécharge une seule fois le moteur SQLite (sql.js, compilé en WebAssembly) depuis assets.viewcsv.app. Si ce téléchargement échoue, l’outil affiche une erreur et vous pouvez réessayer ; votre fichier reste sur cet appareil.

Pour convertir de nombreux fichiers avec les mêmes réglages, choisissez Lot : convertir plusieurs fichiers. Chaque fichier devient une base distincte, avec une table nommée d’après ce fichier, et toutes sont téléchargées ensemble dans un seul ZIP. En mode lot, chaque fichier doit peser 25 Mo au maximum.

Ce que contient la base de données

Une seule table, créée avec CREATE TABLE "name" (…), avec une colonne par colonne du CSV dans l’ordre d’origine, et toutes les lignes insérées en une seule transaction. Pas d’index, de vues ni de colonnes d’identifiant supplémentaires.

Noms de table et de colonnesRepris exactement tels qu’ils sont écrits et entre guillemets doubles : espaces, ponctuation, mots réservés et noms non latins fonctionnent, à interroger sous la forme "order date". Un en-tête vide devient Column 3 et un en-tête répété name (2).
Tout garder en texteLe réglage par défaut. Chaque colonne est déclarée TEXT et stocke chaque valeur exactement telle qu’elle est écrite.
Détecter les nombres et true/falseUne colonne dont toutes les valeurs non vides sont des entiers sans zéro initial devient INTEGER ; les décimaux de 15 chiffres significatifs au plus deviennent REAL ; les colonnes true/false deviennent INTEGER avec 1 et 0, car SQLite n’a pas de type booléen. Les dates et tout le reste restent en TEXT.
Clé primaireFacultative. La colonne choisie est déclarée PRIMARY KEY. Ses valeurs doivent être uniques et non vides, sinon l’outil s’arrête avant d’écrire le fichier. Une clé détectée comme entière devient INTEGER PRIMARY KEY, l’alias du rowid de SQLite.
Écrire les cellules vides en NULLActivé par défaut. Désactivez cette option pour stocker les cellules vides sous forme de chaîne vide ''.

Les sauts de ligne, guillemets et virgules à l’intérieur des valeurs CSV entre guillemets sont stockés dans la valeur sans changement.

En cas de problème

  • La conversion s’arrête sur la clé primaire. La colonne choisie contient une valeur vide ou répétée. Repérez les doublons avec Valider un CSV ou le lecteur CSV, choisissez une autre colonne, ou réglez la Clé primaire sur Aucune.
  • Le moteur n’a pas pu être téléchargé. Le fichier WebAssembly de SQLite provient de assets.viewcsv.app. Vérifiez votre connexion, votre pare-feu ou votre bloqueur de contenu, puis réessayez.
  • `SUM()` traite une colonne comme du texte. La colonne est en TEXT. Convertissez de nouveau avec Détecter les nombres et true/false ; si elle reste en texte, une valeur n’est pas un nombre simple (1,234, 12 kg, 007). Vous pouvez aussi la convertir en SQL : CAST(total AS REAL).
  • Le fichier est trop gros pour cet outil. La conversion en SQLite fonctionne sur des fichiers jusqu’à 25 Mo, 100 000 lignes, 250 colonnes et 2 millions de cellules. Pour un fichier plus gros, générez un script avec CSV en SQL, qui traite les gros fichiers en flux, et exécutez-le avec sqlite3.

Limites et confidentialité

Le CSV doit pouvoir s’ouvrir dans l’espace de travail du navigateur : jusqu’à 25 Mo, 100 000 lignes, 250 colonnes et 2 millions de cellules. La base de données est construite en mémoire et exportée en un seul fichier.

Le moteur s’exécute dans un worker en arrière-plan, dans cet onglet : la page reste réactive et Annuler interrompt le traitement. Seul le fichier du moteur est téléchargé ; le CSV et la base de données ne quittent jamais votre appareil.

Exemple

Un fichier de commandes avec des identifiants à zéros initiaux, une date vide et une note sur deux lignes, converti avec Détecter les nombres et true/false, le nom de table orders et order_id comme Clé primaire, puis ouvert dans le shell sqlite3. total est devenu REAL et paid un INTEGER 1/0, tandis que order_id et shipped_on sont restés en TEXT. Avec le réglage par défaut Tout garder en texte, les six colonnes sont en TEXT et total garde 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'

Questions fréquentes

Quelle différence avec la conversion CSV en SQL ?

Cette page vous donne un fichier de base SQLite terminé, à ouvrir directement. CSV en SQL écrit un script texte d’instructions CREATE TABLE et INSERT que vous exécutez vous-même, pour SQLite ou pour PostgreSQL, MySQL ou SQL Server, et peut traiter en flux des fichiers de plus de 25 Mo.

Puis-je ajouter le CSV à une base existante ?

Pas directement : chaque conversion crée une nouvelle base avec une seule table. Attachez-la depuis votre base existante avec ATTACH 'orders.sqlite' AS src; et copiez les lignes avec INSERT INTO … SELECT * FROM src.orders;.

Pourquoi true et false sont-ils stockés en 1 et 0 ?

SQLite n’a pas de classe de stockage booléenne : les booléens sont des entiers. Avec Détecter les nombres et true/false, true devient 1 et false devient 0. En mode texte, ils restent les chaînes true et false.

Normes et références