78
CHAPITRE 4. LANGAGE SQL
4.5.4 La clause SELECT
Introduction
Comme nous l’avons déjà dit, la clause SELECT permet de spécifier les attributs que l’on désire
voir apparaître dans le résultat de la requête. Pour préciser explicitement les attributs que l’on désire
conserver, il faut les lister en les séparant par une virgule. Cela revient en fait à opérer une projection de
la table intermédiaire générée par le reste de la requête. Nous verrons dans cette section que la clause
SELECT permet d’aller plus loin que la simple opération de projection. En effet, cette clause permet
également de renommer des colonnes, voire d’en créer de nouvelles à partir des colonnes existantes.
Pour illustrer par des exemples les sections qui suivent, nous utiliserons une table dont le schéma est
le suivant :
employee(id_employee, surname, name, salary)
Cette table contient respectivement l’identifiant, le nom, le prénom et le salaire mensuel des employés
d’une compagnie.
L’opérateur étoile (*)
Le caractère étoile (*) permet de récupérer automatiquement tous les attributs de la table générée par
la clause FROM de la requête.
Pour afficher la table employee on peut utiliser la requête :
SELECT * FROM employee
Les opérateurs DISTINCT et ALL
Lorsque le SGBD construit la réponse d’une requête, il rapatrie toutes les lignes qui satisfont la
requête, généralement dans l’ordre ou il les trouve, même si ces dernières sont en double (comportement
ALL par défaut). C’est pourquoi il est souvent nécessaire d’utiliser le mot clef DISTINCT qui permet
d’éliminer les doublons dans la réponse.
Par exemple, pour afficher la liste des prénoms, sans doublon, des employés de la compagnie, il faut
utiliser la requête :
SELECT DISTINCT name FROM employee
Les opérations mathématiques de base
Il est possible d’utiliser les opérateurs mathématiques de base (i.e. +, -, * et /) pour générer de
nouvelles colonnes à partir, en générale, d’une ou plusieurs colonnes existantes.
Pour afficher le nom, le prénom et le salaire annuel des employés, on peut utiliser la re