SQL en ligne – Éditeur & exercices

⚠️ Moteur SQLite (syntaxe SQL standard), avec une « saveur Oracle » : table dual et fonctions NVL, NVL2, DECODE, SYSDATE, TO_CHAR, TO_DATE. Certaines fonctions Oracle avancées (CONNECT BY, PIVOT…) ne sont pas disponibles ici.
Le résultat s'affichera ici.

Exercices à résoudre

⏳ Chargement du moteur SQL…

Un éditeur SQL en ligne, sans installation ni inscription

Installer Oracle Database pour écrire un SELECT de trois lignes est décourageant : plusieurs gigaoctets, un compte Oracle, une configuration réseau. L’éditeur ci-dessus supprime cette étape. Tout s’exécute dans votre navigateur : aucune donnée n’est envoyée à un serveur, rien n’est enregistré, et vous pouvez réinitialiser la base à tout moment avec le bouton Réinitialiser la base.

Raccourci utile : Ctrl + Entrée exécute la requête sans quitter le clavier.

Quel moteur SQL tourne derrière l’éditeur ?

Soyons précis, car cela change ce que vous pouvez tester. Le moteur est SQLite compilé en WebAssembly, enrichi d’une couche de compatibilité Oracle. Concrètement :

Ce qui fonctionneDétail
SQL standard completSELECT, WHERE, ORDER BY, GROUP BY, HAVING, JOIN, sous-requêtes, INSERT, UPDATE, DELETE, CREATE TABLE
La table DUALPrésente, comme sous Oracle : SELECT SYSDATE() FROM dual;
Fonctions Oracle courantesNVL, NVL2, DECODE, SYSDATE, TO_CHAR, TO_DATE

En revanche, les fonctionnalités propres au moteur Oracle ne sont pas disponibles : CONNECT BY, PIVOT, les fonctions analytiques avancées, les séquences, le PL/SQL (DECLARE ... BEGIN ... END;) et les paquetages. Pour ces sujets, les exemples de nos cours doivent être exécutés sur une vraie instance Oracle.

La base d’exemple : quatre tables

La base est chargée automatiquement au démarrage. Voici sa structure, pour que vous puissiez écrire vos requêtes sans deviner les noms de colonnes.

TableColonnesRôle
departementsid, nomLes services de l’entreprise
employesid, nom, salaire, departement_id, date_embaucheTable principale, reliée à departements
clientsid, nom, ville, emailPour les jointures et les filtres texte
commandesid, client_id, montant, date_commandePour les agrégats et les calculs de dates
dualdummyTable technique Oracle, pour tester une fonction seule

Sept requêtes pour démarrer

Copiez-collez ces requêtes dans l’éditeur, exécutez-les, puis modifiez-les. C’est en cassant une requête qu’on comprend ce qu’elle fait.

1. Tout afficher

SELECT * FROM employes;

2. Filtrer avec WHERE

SELECT nom, salaire
  FROM employes
 WHERE salaire > 3000;

3. Trier avec ORDER BY

SELECT nom, salaire
  FROM employes
 ORDER BY salaire DESC;

4. Joindre deux tables

SELECT e.nom, d.nom AS departement
  FROM employes e
  JOIN departements d ON d.id = e.departement_id;

5. Regrouper et compter

SELECT departement_id,
       COUNT(*) AS nb,
       AVG(salaire) AS moyenne
  FROM employes
 GROUP BY departement_id;

6. Gérer les valeurs nulles avec NVL et DECODE

SELECT nom,
       NVL(salaire, 0) AS salaire,
       DECODE(departement_id, 1, 'Direction', 'Autre') AS service
  FROM employes;

7. Interroger DUAL

SELECT SYSDATE() AS aujourdhui FROM dual;

Comment s’entraîner efficacement

Lire du SQL ne suffit pas : la syntaxe s’ancre par la répétition et par l’erreur. Une méthode qui fonctionne :

  1. Exécutez la requête d’exemple telle quelle, pour voir le résultat attendu.
  2. Modifiez une seule chose (une colonne, un opérateur, une valeur) et ré-exécutez.
  3. Provoquez volontairement une erreur : retirez une virgule, inventez un nom de colonne. Apprendre à lire un message d’erreur est la moitié du métier.
  4. Écrivez la requête de mémoire, sans regarder l’exemple.

Quand une erreur Oracle vous bloque en entreprise, nos fiches de diagnostic expliquent chaque code : ORA-00904, ORA-00942, ORA-01722 et les autres codes d’erreur Oracle.

Questions fréquentes

L’éditeur SQL en ligne est-il vraiment gratuit ?

Oui, sans inscription et sans limite d’utilisation. Le moteur s’exécute dans votre navigateur, il ne coûte rien à faire tourner.

Mes données sont-elles envoyées quelque part ?

Non. Le moteur SQL est chargé une fois dans la page et travaille en mémoire. Vos requêtes ne quittent jamais votre machine, et tout disparaît quand vous fermez l’onglet.

Puis-je créer mes propres tables ?

Oui. CREATE TABLE, INSERT, UPDATE et DELETE fonctionnent. Le bouton Réinitialiser la base restaure l’état initial si vous cassez quelque chose.

Puis-je exécuter du PL/SQL ?

Non. Les blocs DECLARE ... BEGIN ... END;, les curseurs, les procédures et les déclencheurs nécessitent le moteur Oracle. Suivez nos cours d’introduction au PL/SQL et testez-les sur une instance Oracle réelle.

Le SQL appris ici est-il valable sous Oracle ?

Pour tout le SQL standard, oui : SELECT, jointures, agrégats et sous-requêtes s’écrivent de la même manière. Les différences apparaissent sur les fonctions propriétaires et le PL/SQL, signalées dans le tableau plus haut.

Poursuivre avec les cours

L’éditeur sert à pratiquer ; les cours expliquent le pourquoi. Dans l’ordre recommandé : la requête SELECT, créer une table, les jointures, puis la fonction NVL et SYSDATE.

Cours SQL & Oracle — 100% gratuitVoir les cours →