Convertisseur SQL en CSV

Parfois, la seule copie des données dont vous avez besoin est un fichier .sql issu d’une sauvegarde, un dump d’instructions INSERT INTO users (id, email, created_at) VALUES (...). Le charger dans une base de données juste pour l’exporter de nouveau est lent. Ce convertisseur lit la liste des colonnes et chaque tuple VALUES directement à partir de la syntaxe INSERT et produit un CSV que vous pouvez ouvrir dans Excel, Google Sheets, Numbers ou pandas sans jamais restaurer le schéma.

Comment convertir des INSERT SQL en CSV

  1. 1

    Collez le SQL

    Déposez une ou plusieurs instructions INSERT. Les blocs VALUES (...) à une ligne comme à plusieurs lignes sont pris en charge.

  2. 2

    Colonnes détectées automatiquement

    Le parseur lit la liste `(col1, col2, ...)` juste avant VALUES et la traite comme la ligne d'en-tête du CSV.

  3. 3

    Lignes extraites

    Chaque tuple `(val1, val2, ...)` devient une ligne CSV. Les chaînes entre guillemets simples sont dépouillées de leurs guillemets ; les nombres et les NULL passent en texte.

  4. 4

    Copiez le CSV

    Récupérez la sortie CSV et collez-la dans une feuille de calcul, ou enregistrez-la avec l'extension `.csv`.

Ce que le parseur accepte

INSERT INTO users (id, email, created_at) VALUES
  (1, 'alice@example.com', '2024-01-12 09:00:00'),
  (2, 'bob@example.com',   '2024-01-13 10:30:00'),
  (3, 'carol@example.com', '2024-01-13 11:15:00');

Devient :

id,email,created_at
1,alice@example.com,2024-01-12 09:00:00
2,bob@example.com,2024-01-13 10:30:00
3,carol@example.com,2024-01-13 11:15:00

Règles d’échappement CSV appliquées

  • Le délimiteur est toujours une virgule ; il n’y a pas d’option de séparateur.
  • Les champs contenant des virgules, des guillemets doubles ou des sauts de ligne sont entourés de guillemets doubles.
  • Les guillemets doubles internes sont doublés (" devient ""), selon la RFC 4180.
  • Les guillemets simples de début et de fin des littéraux de chaîne SQL sont supprimés.
  • Le NULL SQL passe tel quel sous forme du texte littéral NULL ; remplacez-le en aval si votre outil attend des cellules vides.

Limitations à connaître

  • Liste de colonnes requise. Le parseur lit l’en-tête à partir de la liste (col1, col2, ...) avant VALUES. Un simple INSERT INTO t VALUES (...) sans la liste de colonnes produit des lignes CSV sans en-tête.
  • Une table à la fois. Si votre dump mélange des INSERT pour différentes tables, séparez-les d’abord. Des lignes de largeurs différentes produisent un CSV irrégulier.
  • Pas d’analyse de CREATE TABLE. Les types de colonnes ne sont pas utilisés. Les dates, le JSON et les blobs binaires passent en texte brut.
  • Chaque groupe de parenthèses devient une ligne. Le parseur transforme chaque groupe (...) en une ligne, donc les clauses finales contenant des parenthèses (ON DUPLICATE KEY UPDATE, RETURNING), les appels de fonction comme NOW() ou les tableaux imbriqués comme (1,2,3) à l’intérieur d’une valeur ajoutent des lignes superflues. Limitez l’entrée à des tuples INSERT ... VALUES simples et remplacez ces expressions par des littéraux avant de coller.

Questions fréquentes

Oui, tant que l’INSERT suit la forme standard INSERT INTO table (cols) VALUES (...), commune à ces bases de données. L’outil n’exécute pas un analyseur SQL complet : il extrait la liste des colonnes et les tuples de valeurs entre parenthèses, gardez donc chaque instruction en syntaxe INSERT simple.

Les virgules à l’intérieur des chaînes SQL entre guillemets simples sont préservées. En sortie, tout champ contenant une virgule, un guillemet ou un saut de ligne est entouré de guillemets doubles et les guillemets internes sont doublés, conformément à la RFC 4180. Les valeurs contenant elles-mêmes des parenthèses peuvent ne pas se découper proprement.

Non. Votre SQL est envoyé à notre serveur, analysé en une passe puis renvoyé, gardez donc l’entrée à quelques mégaoctets à la fois. Pour les dumps très volumineux, divisez le fichier en morceaux (un bloc INSERT par morceau) et convertissez-les par parties.

Non, la sortie est un CSV plat. Les types de colonnes, les index et les contraintes se trouvent dans CREATE TABLE et sortent du champ de ce convertisseur.

Votre SQL est envoyé à notre serveur uniquement pour produire le CSV et n’est pas stocké ; nous conservons un décompte anonyme du nombre de lignes converties, jamais le texte SQL lui-même.

Outils similaires

Outil disponible dans d’autres langues