SQL INSERT en CSV
Retrouvez le tableau caché dans les INSERT d'un dump SQL ; syntaxes MySQL, PostgreSQL et SQL Server reconnues, sortie en CSV ou en JSON
Vos données restent chez vous. La conversion se fait dans le navigateur ; rien n'est envoyé à un serveur.
Cet outil a-t-il fait le travail ?
Merci, votre retour nous est bien parvenu.
Comment ça marche
On ouvre surtout cet outil quand on n'a qu'une sauvegarde de base de données, un fichier .sql : la liste des membres d'un ancien site, la table des commandes d'une boutique en ligne fermée ou des données d'exemple envoyées par un développeur. Pour voir la table sans installer de base de données, ouvrez le fichier dans le Bloc-notes et collez les lignes INSERT, ou tout le fichier, dans le panneau de gauche. « INSERT INTO client (id, nom) VALUES (1, 'Yasmine'), (2, 'Karim'); » donne un tableau de deux lignes avec les colonnes id et nom. mysqldump et pg_dump n'écrivent pas les noms de colonnes dans les INSERT ; l'outil les prend dans le CREATE TABLE du même dump, et sinon les nomme colonne1, colonne2. Les textes perdent leurs guillemets : 'l''Atlas' et l'écriture MySQL 'l\'Atlas' donnent l'Atlas, et NULL donne une cellule vide. Une fonction comme NOW() n'est pas exécutée : elle est recopiée telle quelle et comptée dans la ligne de résultat. S'il y a plusieurs tables, chacune devient un fichier CSV et le tout arrive dans un seul ZIP ; en JSON, les noms des tables deviennent les clés. Une requête SELECT ne peut pas être exécutée, car il n'y a pas de base de données ici : seules les valeurs écrites dans le texte sont extraites.
Cet outil est aussi connu sous le nom de convertir sql en csv, sql en csv, sql to csv, insert sql en csv, sql en json.
Qu'est-ce que SQL INSERT ?
INSERT est l'instruction SQL qui ajoute des lignes à une table de base de données : INSERT INTO table (colonne1, colonne2) VALUES (valeur1, valeur2). Une seule instruction peut contenir beaucoup de lignes séparées par des virgules. Les sauvegardes (mysqldump, pg_dump --inserts, l'outil de génération de scripts de SQL Server) écrivent le contenu des tables sous forme de ces instructions ; les lignes INSERT sont donc la table elle-même en texte, lisible sans base de données.
Qu'est-ce que Dump SQL (.sql) ?
Un dump SQL est un fichier texte d'instructions qui permet de reconstruire une base de données, sa structure et son contenu : d'abord des CREATE TABLE définissent les tables, puis des INSERT ou des COPY ajoutent les lignes. Le bouton « Exporter » de phpMyAdmin et des panneaux d'hébergement produit ce type de fichier. Il peut être gros, mais c'est du texte ; pour une seule table, il suffit de coller la partie de cette table.
Quelle est la différence entre un dump SQL et un CSV ?
Un dump SQL est une suite d'instructions destinées à une base de données : il porte la structure des tables (types de colonnes, clés), leur contenu et plusieurs tables à la fois, mais il faut une base de données ou un lecteur comme celui-ci pour l'ouvrir. Un CSV ne porte que les valeurs d'une seule table, sans types, sans clés et sans nom de table, mais tous les programmes, Excel compris, l'ouvrent directement. Pour restaurer une sauvegarde, gardez le SQL ; pour consulter, partager ou transférer les données vers un autre système, prenez le CSV.
Quelles syntaxes SQL sont reconnues ?
Chaque base de données met ses guillemets à sa façon. MySQL entoure les noms de tables et de colonnes d'`accents graves`, PostgreSQL de "guillemets doubles", SQL Server de [crochets] ; les trois sont reconnus et les noms sont repris sans ces signes. Les valeurs texte sont entre apostrophes dans tous les systèmes, et une apostrophe à l'intérieur est doublée ('l''Atlas'). MySQL ajoute l'échappement par barre oblique inverse : \' est une apostrophe, \n un saut de ligne. Dans PostgreSQL, la barre oblique inverse est un caractère normal : un chemin C:\dossier doit rester tel quel. L'outil repère un dump MySQL à des indices comme les accents graves, ENGINE= ou LOCK TABLES, ne traite la barre oblique inverse comme échappement que dans ce cas, et le signale dans la ligne de résultat.
La sortie par défaut de pg_dump n'est pas un INSERT mais un bloc COPY : après la ligne « COPY public.produit (id, nom) FROM stdin; » viennent des données séparées par des tabulations, puis \. à la fin. Ce bloc est lu aussi, et \N y devient une valeur vide. Le préfixe N'texte de SQL Server, la conversion '2026-09-27'::date de PostgreSQL et le préfixe _utf8mb4'texte' de MySQL sont retirés, la valeur reste.
- `nom`, "nom", [nom] → nom
- 'l''Atlas', 'l\'Atlas' (MySQL) → l'Atlas
- NULL → cellule vide (null en JSON)
- 1250.50 → recopié tel quel, 1250.50
- NOW(), CAST(…) → pas exécuté, écrit comme texte
CSV ou JSON, et quel séparateur ?
Choisissez le CSV pour ouvrir la table dans Excel ou la charger dans un autre système. Excel en français attend le point-virgule, parce que la virgule y sert aux décimales ; c'est donc le réglage par défaut. Un nombre décimal SQL s'écrit avec un point (1250.50) et l'outil ne le change pas ; Excel en français peut ouvrir cette cellule comme du texte. Si vous devez calculer, remplacez le point par une virgule avec Rechercher et remplacer dans Excel, ou choisissez la virgule comme séparateur et ouvrez le fichier avec un Excel réglé en anglais. Le CSV téléchargé commence par une marque UTF-8 (BOM) : les lettres é, è, à ou ç s'affichent bien dans Excel.
Pour donner les données à un programme ou à une page web, choisissez le JSON : les nombres sont écrits sans guillemets, NULL devient null, TRUE/FALSE deviennent true/false, et l'écriture du nombre est gardée (1250.50 reste 1250.50). Le bloc COPY de pg_dump ne contient pas de types ; l'outil lit le type des colonnes dans le CREATE TABLE, écrit les colonnes integer et numeric en nombres, et change les valeurs t/f d'une colonne boolean en true/false.
Questions fréquentes
Comment convertir un fichier SQL en CSV ?
Ouvrez le fichier .sql dans le Bloc-notes ou un autre éditeur de texte, copiez son contenu et collez-le dans le panneau de gauche de cette page. Les valeurs des instructions INSERT forment un tableau, affiché en CSV à droite ; « Télécharger » vous donne le fichier .csv. Si le dump contient plusieurs tables, chacune arrive en CSV séparé dans un seul fichier ZIP.
Puis-je obtenir en CSV le résultat d'une requête SELECT ?
Non. Cette page ne se connecte à aucune base de données et n'exécute pas de requête ; elle lit seulement les valeurs écrites dans le texte. Pour le résultat d'un SELECT, exécutez la requête dans votre propre outil de base de données et exportez le résultat. Si vous avez une sauvegarde qui contient des INSERT, cet outil en tire la table sans installer de base de données.
Pourquoi les colonnes s'appellent-elles colonne1, colonne2 ?
Quand un INSERT n'a pas de liste de colonnes (INSERT INTO client VALUES (…)), les noms ne figurent que dans la définition de la table. Si l'outil trouve le CREATE TABLE client dans le même texte, il y prend les noms ; sinon, il numérote les colonnes. Collez aussi le début du dump, qui contient la définition de la table, pour obtenir les vrais noms.
Ma sauvegarde de base de données est-elle envoyée à un serveur ?
Non. Le texte SQL est lu dans votre navigateur et le tableau y est construit ; même un dump avec des données clients, des e-mails ou des empreintes de mots de passe ne quitte pas cette page et n'est enregistré nulle part.