SQL en ligne - IDE, éditeur, compilateur, interpréteur

RSS

Entraînez-vous au SQL en ligne : créez des tables, insérez des données et exécutez des requêtes sur une vraie base SQLite dans votre navigateur. Les résultats s'affichent sous forme de tableaux.

SQLite 3 (sql.js) · S'exécute dans votre navigateur : votre code n'atteint jamais nos serveurs.
main.sqlSQL
Sortie

            
        
Ctrl/⌘ + Enter pour exécuter

Fonctionnalités du compilateur SQL en ligne (IDE, éditeur & interpréteur)

Écrivez, exécutez et testez du code SQL en ligne gratuitement. Cette page réunit un IDE SQL en ligne, un éditeur de code, un compilateur et un interpréteur : saisissez votre code, cliquez sur Exécuter et voyez le résultat immédiatement. Tout s'exécute dans votre navigateur, sans rien à installer ni compte à créer.

  • Exécution instantanée : SQLite 3 (sql.js), avec un résultat en moins d'une seconde après le premier chargement.
  • Éditeur de code : coloration syntaxique, numéros de ligne, correspondance et fermeture automatique des parenthèses.
  • Erreurs claires : les messages d'erreur et avertissements s'affichent dans le panneau de sortie, comme sur votre propre ordinateur.
  • Plein écran : Ctrl/⌘ + Shift + F, taille de police réglable, disposition côte à côte ou empilée et panneaux redimensionnables.
  • Enregistrement automatique : votre code est conservé dans votre navigateur ; téléchargez-le sous main.sql ou copiez-le en un clic.
  • Expérimentez sans risque : une limite de temps et un bouton Arrêter interrompent les boucles infinies.
  • Confidentiel : l'environnement d'exécution SQL tourne sur votre appareil : votre code n'est jamais envoyé.
  • Mode sombre et raccourcis clavier : Ctrl/⌘ + Enter exécute le code.
  • Gratuit : sans inscription, sans limite d'utilisation.

Découvrez d'autres langages de programmation

Comment utiliser le compilateur SQL en ligne

  1. Écrivez votre SQL dans l'éditeur. Vous pouvez créer des tables (CREATE TABLE), ajouter des données (INSERT) et les interroger (SELECT) dans un seul script. Séparez les instructions par des points-virgules.
  2. Appuyez sur Exécuter ou utilisez Ctrl + Entrée (⌘ + Entrée sur un Mac).
  3. Chaque instruction qui renvoie des lignes s'affiche dans son propre tableau de résultats, dans l'ordre, avec le nombre de lignes en dessous. Les valeurs NULL sont signalées comme telles. Si aucune instruction ne renvoie de lignes, une courte confirmation s'affiche à la place.
  4. Choisissez une limite de temps de 5, 15 ou 60 secondes, utile pour les requêtes récursives qui s'emballent. Arrêter annule immédiatement une requête.

Le moteur SQLite est petit, bien en dessous de 1 Mo, et se charge donc presque instantanément. Réinitialiser l'exemple restaure le schéma d'exemple des employés, et main.sql télécharge votre script.

Vos requêtes s'exécutent dans un Web Worker, dans votre propre navigateur. Ni le SQL ni les données ne sont envoyés ou stockés sur nos serveurs. L'éditeur conserve votre dernier script dans le stockage local de votre navigateur, et nulle part ailleurs.

Ce qui est pris en charge

Le compilateur exécute SQLite 3 via sql.js, la bibliothèque C de SQLite compilée en WebAssembly. C'est un vrai moteur de base de données relationnelle, pas un émulateur.

  • DDL et DML : CREATE TABLE, CREATE INDEX, CREATE VIEW, INSERT, UPDATE, DELETE, contraintes, clés étrangères et déclencheurs.
  • Requêtes : jointures, sous-requêtes, GROUP BY/HAVING, UNION, CASE et expressions de table communes, y compris WITH RECURSIVE.
  • Fonctions de fenêtrage comme ROW_NUMBER(), RANK(), LAG() et les totaux cumulés avec SUM() OVER (...).
  • Fonctions intégrées pour le texte (substr, upper, replace), les nombres et les dates (date, strftime).

Limites :

  • Une base de données en mémoire neuve et vide à chaque exécution. Les tables ne survivent pas d'une exécution à l'autre : gardez donc vos instructions CREATE et INSERT en haut du script.
  • C'est du SQLite, pas du MySQL ni du PostgreSQL. La plupart du SQL standard fonctionne, mais les fonctions propres à un éditeur, comme les procédures stockées, GRANT, le mot-clé AUTO_INCREMENT de MySQL ou le type SERIAL de PostgreSQL, ne fonctionnent pas.
  • Les grands jeux de résultats affichent les 1 000 premières lignes, avec le nombre total de lignes.
  • Vous ne pouvez pas vous connecter à une base de données externe ni ouvrir votre propre fichier .db.

Aide-mémoire SQL

CREATE TABLE orders (
  id       INTEGER PRIMARY KEY,
  customer TEXT NOT NULL,
  amount   REAL,
  placed   TEXT DEFAULT (date('now'))
);

INSERT INTO orders (customer, amount) VALUES
  ('Ada', 120.0), ('Ada', 35.5), ('Grace', 80.0);

WITH totals AS (
  SELECT customer, SUM(amount) AS spent, COUNT(*) AS n
  FROM orders
  GROUP BY customer
)
SELECT customer, spent, n
FROM totals
WHERE spent >= 50 AND n <> 0
ORDER BY spent DESC;
TâcheSQL
Clé auto-numérotéeid INTEGER PRIMARY KEY
Filtrer des lignesWHERE price BETWEEN 10 AND 20
Correspondance de motifWHERE name LIKE 'A%'
Concaténer du textefirst || ' ' || last
PaginerLIMIT 10 OFFSET 20
Remplacer NULLCOALESCE(phone, 'n/a')
Insérer ou mettre à jourINSERT ... ON CONFLICT(id) DO UPDATE SET ...

Conseils

  • Utilisez sqlite_master pour lister ce que vous avez créé : SELECT name, sql FROM sqlite_master;
  • Utilisez EXPLAIN QUERY PLAN SELECT ... pour voir si une requête utilise un index.
  • SQLite utilise un typage souple : une colonne déclarée INTEGER peut quand même stocker du texte. Ajoutez des contraintes CHECK, ou utilisez des tables STRICT, si vous voulez imposer les types.
  • Les clés étrangères ne sont appliquées qu'après PRAGMA foreign_keys = ON;.
  • Une requête longue et brouillonne ? Nettoyez-la avec le Formateur SQL avant de la partager.
Astuce : entourez les insertions répétées de BEGIN; … COMMIT;. Générer des données de test avec une CTE récursive est un moyen rapide de remplir une table de milliers de lignes pour s'entraîner.

Questions fréquentes

Quel dialecte SQL est utilisé ici ?

SQLite 3. Il suit de près le SQL standard et convient donc bien pour apprendre SELECT, les jointures, le regroupement et les fonctions de fenêtrage. La syntaxe propre à MySQL, PostgreSQL ou SQL Server peut demander de petites adaptations.

Mes données sont-elles enregistrées ?

Non. Chaque exécution crée une nouvelle base de données en mémoire, supprimée dès la fin de l'exécution. Seul le texte SQL de l'éditeur est mémorisé, localement dans votre navigateur.

Puis-je exécuter plusieurs requêtes à la fois ?

Oui. Séparez-les par des points-virgules. Les instructions s'exécutent dans l'ordre, et chacune de celles qui renvoient des lignes produit son propre tableau de résultats.

Puis-je aussi m'exercer avec d'autres langages ?

Oui. Essayez le Compilateur Python en ligne, où le module sqlite3 intégré à Python fonctionne aussi, ou parcourez tous nos outils pour développeurs.

Mis à jour

Copié dans le presse-papiers