Aller au contenu

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 :

  1. FROM
  2. WHERE
  3. SELECT
  4. ORDER BY
  5. FETCH FIRST

🔎 Pourquoi ?

Parce que la base de données doit :

  1. Identifier les données sources
  2. Filtrer les lignes
  3. Sélectionner les colonnes
  4. Trier le résultat
  5. 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 :

  1. FROM employe
  2. WHERE departement_id = 10
  3. SELECT nom, salaire
  4. ORDER BY salaire DESC
  5. FETCH FIRST 3 ROWS ONLY

👉 Résultat : les 3 employés les mieux payés du département 10.