Résumé du SELECT simple¶
Avec ce qu'on a vu jusqu'à maintenant, la structure générale d'un SELECT est la suivante :
SELECT colonne1 [AS alias],
colonne2 [AS alias]
FROM nom_table
WHERE condition
ORDER BY colonne [ASC | DESC]
FETCH FIRST n ROWS ONLY;
Description des clauses¶
1. SELECT
Permet de choisir les colonnes à afficher.
➜ Renommage de colonne (alias) avec le mot clé AS
On utilise AS pour renommer une colonne dans le résultat :
SELECT nom AS nom_etudiant
FROM etudiant;
⚠️ L’alias est visible uniquement dans le résultat, pas dans la table.
2. FROM
Indique la table source.
FROM etudiant
3. WHERE
Filtre les lignes avant l’affichage.
WHERE age >= 18
Conditions possibles :
- =, <>, >, <, >=, <=
- BETWEEN
- IN
- LIKE
- IS NULL
4. ORDER BY
Trie le résultat final ascendant ou descendant.
ORDER BY nom ASC
Par défaut : ASC (ordre croissant) est utilisé si on omet l'ordre désiré.
5. FETCH FIRST
Limite le nombre de lignes retournées.
FETCH FIRST 5 ROWS ONLY
Permet par exemple d’afficher les 5 meilleurs résultats après tri.
S'utilise uniquement avec un ORDER BY.
Ordre d'exécution réel¶
Même si l'ordre d'écriture de la requête est la suivante :
SELECT
FROM
WHERE
ORDER BY
FETCH FIRST
L'ordre d'exécution réelle sous Oracle est la suivante :
- FROM
- WHERE
- SELECT
- ORDER BY
- FETCH FIRST
🔎 Pourquoi ?
Parce que la base de données doit :
- Identifier les données sources
- Filtrer les lignes
- Sélectionner les colonnes
- Trier le résultat
- Limiter le nombre de lignes
Exemples :
SELECT AVG(salaire) AS salaire_moyen
FROM employe
WHERE departement_id = 10;
1️⃣ FROM employe → Lecture de la table.
2️⃣ WHERE departement_id = 10 → Filtrage des employés du département 10.
3️⃣ SELECT AVG(salaire) → Calcul de la moyenne sur les lignes restantes.
SELECT nom, salaire
FROM employe
WHERE departement_id = 10
ORDER BY salaire DESC
FETCH FIRST 3 ROWS ONLY;
Ordre d'exécution :
- FROM employe
- WHERE departement_id = 10
- SELECT nom, salaire
- ORDER BY salaire DESC
- FETCH FIRST 3 ROWS ONLY
👉 Résultat : les 3 employés les mieux payés du département 10.