Aller au contenu

Projection

La projection consiste à ne conserver que certaines colonnes (attributs) dans le résultat de la requête :

1
2
SELECT colonne1, colonne2, 
FROM nom_table ;

Vocabulaire

La commande SELECT correspond à une opération de projection, pas de sélection...

Exemple

On considère la table Confitures dont les enregistrements sont donnés ci-dessous : Confitures

Écrire une requête qui recherche et renvoie les stocks pour chaque référence.

Une réponse
1
2
SELECT ref, stock
FROM Confitures;
Résultat de la requête

Confitures

Cas particuliers :

  • Pour projeter sur l’ensemble des colonnes de la table, on peut utiliser le caractère « * » :

    1
    2
    SELECT *
    FROM nom_table ;
    
  • Lors de l’opération de projection, des enregistrements « doublons » peuvent apparaître. On évite ces doublons en utilisant le mot-clef DISTINCT.

Exemple

La table Confitures

Confitures

Écrire une requête qui renvoie les parfums des confitures vendues.

Une réponse
1
2
SELECT DISTINCT fruit
FROM Confitures;
Résultat de la requête

Confitures

Opérations sur les colonnes

On peut utiliser des opérations arithmétiques ou des fonctions d’agrégation pour projeter des données sur des colonnes supplémentaires, construites à partir des colonnes d’origine des tables :

1
2
SELECT f(colonne1), (colonne2 + colonne3), 
FROM nom_table ;

Pour améliorer l’affichage et la compréhension, il est possible de créer un alias (renommer) une telle colonne avec le mot-clef AS :

1
2
SELECT (colonne1 + colonne2) AS somme_col_1_2
FROM nom_table ;

Fonctions d’agrégation :

Voici les fonctions d'agrégation les plus usuelles :

  • MIN(a) : renvoie la plus petite valeur de la colonne a.
  • MAX(a) : renvoie la plus grande valeur de la colonne a.
  • SUM(a) : calcule la somme des valeurs de la colonne a.
  • AVG(a) : calcule la moyenne des valeurs de la colonne a.
  • COUNT(a) : renvoie le nombre de lignes (non NULL) de la colonne a.

Important

Pour renvoyer le nombre d’enregistrements de la table, on saisit la commande :

1
2
SELECT COUNT(*)
FROM nom_table ;

Exemples

La table Confitures

Confitures

  1. Écrire une requête qui renvoie le nombre de pots de confiture en stock.

    Une réponse
    1
    2
    SELECT SUM(stock) AS nb_de_pots
    FROM Confitures;
    
    Résultat de la requête

    Confitures

  2. Écrire une requête qui renvoie le prix moyen d’un pot de confiture.

    Une réponse
    1
    2
    SELECT AVG(prix_unit) AS prix_moyen
    FROM Confitures;
    
    Résultat de la requête

    Confitures

  3. Écrire une requête qui renvoie le nombre de parfums différents.

    Une réponse

    Un exemple sans renommer la colonne résultat :

    1
    2
    SELECT COUNT(DISTINCT fruit)
    FROM Confitures;
    
    Résultat de la requête

    Confitures