Interroger des tables avec SELECT

1.1 Une requête simple

L’instruction SELECT est utilisée pour interroger une ou plusieurs lignes d’une ou plusieurs tables.

Alors que les autres instructions, vues jusqu’à présent, ne comportent qu’un très petit nombre de clauses, l’instruction SELECT est celle qui en comprend le plus et constitue, par le fait même, l’instruction SQL la plus complexe.

Une requête SELECT simple a l’apparence suivante:

SELECT {liste des colonnes | *}
FROM table
[WHERE expression conditionnelle];

Les colonnes peuvent apparaître dans n’importe quel ordre. L’utilisation du caractère (*) fait apparaître toutes les colonnes de la table, dans l’ordre où elles existent dans la table.

Quelles sont les sorties effectuées avec le produit ABC?
SELECT *
FROM sortie
WHERE code_produit = ‘ABC’;

1.2 La clause SELECT

Dire que la clause SELECT présente une liste de colonnes est un peu limitatif. N’importe quelle expression mathématique, fonction ou valeur peut être indiquée en lieu d’une colonne.

SELECT code_produit, (quantite * cout * 1.07), ‘dollars’
FROM produit;

Par soucis de clarté, on peut, pour le bénéfice d’une requête, modifier le nom d’une colonne en ajoutant un alias. Celui-ci se place immédiatement après le nom d’une colonne, ou d’une expression de colonnes (e.g. un calcul), et en est séparé par un espace.

SELECT quantite * cout * 1.07 prix
FROM produit;

On peut aussi utiliser le mot clé optionnel AS pour exprimer la définition de l’alias.

SELECT quantité * coût * 1.07 AS prix
FROM produit;

1.3 Éliminer les doublons

Quelquefois, une requête peut afficher des lignes répétitives (du moins en apparence), particulièrement lorsque la clé primaire ne fait pas partie des colonnes affichées.

On élimine ces répétitions en utilisant le mot clé DISTINCT dans la clause SELECT au début de la liste des colonnes.

SELECT [ DISTINCT ] liste des colonnes

Toute ligne présentant les mêmes valeurs qu’une autre ligne déjà présentée sera ignorée.

Remarque:
DISTINCT opère sur la totalité de la ligne et non sur une seule colonne à la fois.

1.4 Trier des résultats

Pour trier les résultats d’un SELECT, on doit utiliser la clause ORDER BY qui doit être placée à la toute fin de l’instruction.

ORDER BY liste des colonnes

Par défaut, le tri sera ascendant. Il est possible de modifier ce critère, colonne par colonne.

Il suffit d’ajouter le mot clé DESC à la suite de la colonne que l’on désire trier.

Donnez la liste des noms des employés en ordre chronologique décroissant des dates de naissance.
SELECT nom, date_nais
FROM chef
ORDER BY date_naiss DESC;

Remarque:

  • La clause ORDER BY apparaît toujours en dernier.
  • La ou les colonnes utilisées doivent aussi être présentes dans la clause SELECT (certains SGBD permettent d’utiliser pour le tri des colonnes qui ne sont pas présentes dans le SELECT).
  • On peut remplacer les noms de colonne par des numéros qui représentent leur ordre de présentation dans la clause SELECT.
  • On peut trier sur une combinaison de plusieurs colonnes.
  • On peut utiliser un ordre ascendant ou descendant, variable à chaque colonne.
  • Par défaut, l’ordre ascendant est implicite.

 

 

Print Friendly, PDF & Email

Laisser un commentaire