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
- Ouvrez un fichier
.csv,.tsvou.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. - 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.csvdevientorders_2026. - Choisissez les Types de valeurs, une Clé primaire facultative, et indiquez s’il faut Écrire les cellules vides en NULL.
- Choisissez Télécharger en SQLite, puis ouvrez le fichier, par exemple avec
sqlite3 orders.sqliteetSELECT * 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 colonnes | Repris 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 texte | Le 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/false | Une 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é primaire | Facultative. 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 NULL | Activé 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.
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'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.