UTILS.
100 % dans le navigateur

Interroger un CSV en SQL

Chargez un CSV et exécutez du vrai SQL (SELECT, WHERE, GROUP BY, JOIN) dessus — 100 % dans votre navigateur.

Charge son moteur à la première utilisation, il n'y a donc pas de téléchargement hors ligne, mais l'outil fonctionne quand même en privé dans votre navigateur, sans rien envoyer.

À propos de cet outil

Cet outil charge un CSV dans une véritable base de données SQLite en mémoire et vous permet d'exécuter du vrai SQL dessus — SELECT, WHERE, ORDER BY, GROUP BY, les agrégats comme SUM et COUNT, les sous-requêtes et les auto-jointures fonctionnent exactement comme dans une base de données. Il s'appuie sur le SQLite officiel compilé en WebAssembly : le moteur de requêtes est donc le vrai, pas une réimplémentation partielle.

Rien n'est téléversé. Le moteur SQLite et votre CSV ne quittent jamais votre appareil — toute la base de données réside dans la mémoire de l'onglet de votre navigateur et disparaît lorsque vous le fermez. Cela en fait un brouillon sûr pour explorer des exports, des données de ventes, des journaux ou tout tableur que vous préféreriez ne pas coller dans une base de données en ligne. Comme il utilise la version officielle de SQLite sans eval, il fonctionne aussi sous les politiques de sécurité strictes qui bloquent les outils de type sql.js.

Les noms de colonnes sont repris de la ligne d'en-tête et assainis en identifiants valides ; chaque valeur est stockée en texte, alors convertissez-la en nombre dans votre requête lorsque vous avez besoin d'arithmétique (par exemple CAST(price AS REAL)). Les résultats s'affichent sous forme de tableau que vous pouvez télécharger en CSV.

Foire aux questions

Mon CSV ou ma requête sont-ils téléversés quelque part ?
Non. Le moteur SQLite s'exécute entièrement dans votre navigateur via WebAssembly et la base de données reste uniquement en mémoire. Votre CSV, votre SQL et les résultats ne quittent jamais votre appareil et disparaissent à la fermeture de l'onglet.
Quel SQL et quels formats de fichier sont pris en charge ?
L'entrée est du CSV (séparé par virgule, point-virgule, tabulation ou barre verticale). Le moteur est du vrai SQLite, donc les requêtes SELECT standard — WHERE, ORDER BY, GROUP BY, HAVING, LIMIT, agrégats, sous-requêtes et jointures — sont prises en charge. Le chargement du CSV crée une nouvelle table : ce n'est donc pas un réencodage avec perte, il se contente de lire vos valeurs dans une base de données.
Pourquoi les comparaisons numériques se comportent-elles comme du texte ?
Chaque colonne est stockée en TEXT pour que rien ne soit deviné ni perdu, ce qui signifie que SQLite les trie et les compare comme des chaînes. Convertissez dans votre requête lorsque vous avez besoin de vrais nombres — p. ex. ORDER BY CAST(price AS REAL) DESC ou WHERE CAST(qty AS INTEGER) > 100.
Comment les noms de colonnes et de table sont-ils choisis ?
Les noms de colonnes proviennent de la ligne d'en-tête (avec la case d'en-tête cochée) et sont assainis en identifiants SQL valides, les doublons étant dédupliqués ; sans en-tête, ils deviennent col1, col2, etc. Le nom de la table est t par défaut et peut être modifié avant de charger le CSV.

Plus d'outils