CSV en SQL
Générez des instructions SQL INSERT à partir d’un CSV
Fichiers importés : jusqu’à 400 000 lignes (ligne d’en-tête comprise, fichiers jusqu’à 150 Mo). Texte collé : jusqu’à 65 000 lignes. La conversion se fait dans votre navigateur ; le bouton « Annuler » l’arrête.
Cliquez ou déposez un fichier .csv iciChoisissez un fichier .csv
À propos de l’outil CSV en SQL
L’outil CSV en SQL écrit une instruction CREATE TABLE et une instruction INSERT par ligne de données à partir d’un fichier .csv ou d’un CSV collé. Choisissez d’abord la base de données : SQL standard (PostgreSQL, SQLite), MySQL / MariaDB ou SQL Server. Les noms de table et de colonnes sont délimités, et les chaînes échappées, comme cette base l’attend. Les types des colonnes sont dimensionnés d’après vos données : INTEGER, BIGINT ou DECIMAL pour les colonnes de nombres, VARCHAR (NVARCHAR sous SQL Server) de la longueur de la valeur la plus longue pour les autres. L’outil ne fait qu’écrire du texte SQL ; il ne se connecte jamais à une base de données.
Exemple
Un petit CSV collé avec le nom de table par défaut, et le SQL que renvoie l’outil :
CSV
id,name,price 1,Ann,12.5 2,O'Brien,8
SQL
CREATE TABLE "my_table" (
"id" INTEGER,
"name" VARCHAR(7),
"price" DECIMAL(3, 1)
);
INSERT INTO "my_table" ("id", "name", "price") VALUES (1, 'Ann', 12.5);
INSERT INTO "my_table" ("id", "name", "price") VALUES (2, 'O''Brien', 8);Comment convertir du CSV en SQL
- 1Choisissez la cible dans « Base de données » et saisissez un « Nom de la table », ou gardez my_table.
- 2Ajoutez les données : un fichier .csv par la zone d’importation, ou du texte CSV dans « Ou collez du CSV ici ».
- 3Vérifiez que « Séparateur : » indique le bon séparateur et, pour un fichier, que « Encodage : » indique le bon jeu de caractères.
- 4Cliquez sur « Convertir ».
- 5Pour un fichier, cliquez sur « Télécharger » pour enregistrer converted.sql ; pour un texte collé, le SQL s’affiche dans « Sortie SQL » avec un bouton « Copier ».
Formats et limites
- Entrée
- Un fichier .csv (jusqu’à 150 Mo) ou du texte CSV collé dans la page
- Sortie
- Texte SQL : CREATE TABLE plus un INSERT par ligne
- Bases de données
- SQL standard (PostgreSQL, SQLite), MySQL / MariaDB, SQL Server
- Lignes d’un fichier
- 400 000 sur ordinateur, 65 000 sur téléphone et tablette, ligne d’en-tête comprise
- Lignes de texte collé
- 65 000 sur tous les appareils
Où votre fichier est traité
L’analyse du CSV et l’écriture du SQL se font dans votre navigateur ; votre fichier et les données collées ne sont pas envoyés, et aucune base de données n’est contactée. En cas d’erreur, son texte, épuré des noms de fichiers et du texte cité, nous est envoyé avec le nom de l’outil et la version de votre navigateur.
Questions fréquentes
Les types des colonnes sont-ils dimensionnés d’après les données ?
Oui. Les nombres entiers jusqu’à 9 chiffres donnent INTEGER, ceux de 10 à 15 chiffres BIGINT, et les nombres décimaux DECIMAL avec exactement les chiffres nécessaires. Une valeur de plus de 15 chiffres significatifs ou avec un exposant fait de sa colonne une colonne de texte : VARCHAR (NVARCHAR sous SQL Server) de la longueur de la valeur la plus longue, ou TEXT, LONGTEXT ou NVARCHAR(MAX) au-delà de la limite. Décochez « Colonnes numériques en INTEGER / DECIMAL » pour n’avoir que des colonnes de texte.
Les noms avec des espaces ou des mots réservés sont-ils sans risque ?
Oui. Chaque nom de table et de colonne est délimité pour la base choisie : guillemets doubles en SQL standard, accents graves en MySQL / MariaDB, crochets en SQL Server, et un délimiteur présent dans un nom est doublé. Un en-tête comme unit price ou order donne donc quand même du SQL valide.
Les apostrophes des valeurs sont-elles échappées ?
Oui. Une apostrophe est doublée : O'Brien s’écrit 'O''Brien' ; MySQL / MariaDB double aussi les barres obliques inverses, et les chaînes SQL Server reçoivent le préfixe N. Une cellule vide devient NULL dans une colonne numérique et une chaîne vide dans une colonne de texte.
Le CSV collé est-il limité à moins de lignes qu’un fichier ?
Oui, sur ordinateur : le texte collé s’arrête à 65 000 lignes parce qu’il est conservé dans la page, alors qu’un fichier peut compter 400 000 lignes et peser jusqu’à 150 Mo. Sur téléphone et tablette, les deux limites sont de 65 000 lignes, ligne d’en-tête comprise.
Trucs et astuces
- ✓Les dates ne sont pas détectées : remplacez leur type VARCHAR ou NVARCHAR par DATE ou TIMESTAMP dans l’instruction CREATE TABLE avant de l’exécuter.
- ✓Pour remettre des instructions INSERT dans un tableur, utilisez SQL en CSV.
Outils associés
- CSV en JSON — le même CSV sous forme de tableau d’objets JSON.
- CSV en Excel — un classeur .xlsx avec de vraies cellules numériques.
- Excel en CSV
- Formateur JSON