Aller au contenu

Sélection

La sélection consiste à ne conserver que les lignes (enregistrements) qui vérifient une certaine condition. C’est (à nouveau) la commande WHERE qui permet de réaliser cette sélection :

1
2
3
SELECT colonne1, colonne2, ...
FROM nom_table
WHERE condition ;

Remarque

Les opérations booléennes de la condition sont réalisées grâce aux opérateurs de comparaison, aux opérateurs booléens et/ou aux filtres sur les chaînes de caractères étudiées dans le chapitre précédent.

Rappel - Opérateurs booléens

Les opérateurs usuels AND, OR et NOT permettent de combiner des valeurs booléennes.

Rappel - Opérateurs de comparaison

Opération Opérateur
égalité =
différence <>>
dans/parmi valeur IN (valeur1, valeur2, …)
inférieur (ou égal) < ou <=
supérieur (ou égal) > ou >=
Entre b_inf et b_sup BETWEEN b_inf AND b_sup

Rappel - Filtres sur les chaînes de caractères
attribut LIKE 'NS_'  /* débute par NS suivi d’un seul caractère */
attribut LIKE 'N_I'  /* débute par N suivi d’un seul caractère et finit par I */
attribut LIKE 'NS%'  /* débute par NS suivi de 0, 1 ou plusieurs caractères */
attribut LIKE '%NSI%'  /* contient le groupe NSI */

Exemples

La table Confitures

Confitures

  1. Écrire une requête qui renvoie les références pour lesquelles le prix du pot de confiture est supérieur ou égal à 4 euros.

    Une réponse
    1
    2
    3
    SELECT ref
    FROM Confitures
    WHERE prix_unit >= 4;
    
    Résultat de la requête

    Confitures

  2. Déterminer le nombre de références pour les confitures de Fraise.

    Une réponse
    1
    2
    3
    SELECT count(*) AS nb_ref_fraise
    FROM Confitures
    WHERE fruit = 'Fraise';
    
    Résultat de la requête

    Confitures

Trier les enregistrements sélectionnés

Les enregistrements renvoyés par une requête peuvent être triés à l’aide de la commande ORDER BY placée à la fin de cette requête.
ORDER BY est suivie des colonnes dans l’ordre desquelles la comparaison lexicographique est effectuée. L’ajout des mots-clef ASC (pour croissant) et DESC (pour décroissant) précise le type de tri :

1
2
3
4
SELECT colonne1, colonne2, ...
FROM nom_table
WHERE condition
ORDER BY col1, col2,  (ASC ou DESC) ;

Exemple

La table Confitures

Confitures

Écrire une requête qui renvoie les confitures par ordre alphabétique de nom de fruit. S’il y a des doublons, ceux-ci sont triés par ordre décroissant de prix.

Une réponse
1
2
3
SELECT *
FROM Confitures
ORDER BY fruit ASC, prix_unit DESC;
Résultat de la requête

Confitures