dual et fonctions NVL, NVL2, DECODE, SYSDATE, TO_CHAR, TO_DATE. Certaines fonctions Oracle avancées (CONNECT BY, PIVOT…) ne sont pas disponibles ici.Exercices à résoudre
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 fonctionne | Détail |
|---|---|
| SQL standard complet | SELECT, WHERE, ORDER BY, GROUP BY, HAVING, JOIN, sous-requêtes, INSERT, UPDATE, DELETE, CREATE TABLE |
La table DUAL | Présente, comme sous Oracle : SELECT SYSDATE() FROM dual; |
| Fonctions Oracle courantes | NVL, 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.
| Table | Colonnes | Rôle |
|---|---|---|
departements | id, nom | Les services de l’entreprise |
employes | id, nom, salaire, departement_id, date_embauche | Table principale, reliée à departements |
clients | id, nom, ville, email | Pour les jointures et les filtres texte |
commandes | id, client_id, montant, date_commande | Pour les agrégats et les calculs de dates |
dual | dummy | Table 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 :
- Exécutez la requête d’exemple telle quelle, pour voir le résultat attendu.
- Modifiez une seule chose (une colonne, un opérateur, une valeur) et ré-exécutez.
- Provoquez volontairement une erreur : retirez une virgule, inventez un nom de colonne. Apprendre à lire un message d’erreur est la moitié du métier.
- É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.
