Projection
L'opération de projection permet de choisir le nom des colonnes de la (ou des) table(s) que l'on souhaite voir apparaître dans la réponse. Si l'on veut afficher toutes les colonnes, il faut utiliser "*". Les colonnes sont données après la clause SELECT.
- Afficher le Nom et le code sexe des étudiants.
SELECT Nometu, Cdsexe FROM ETUDIANT;
- Afficher le Contenu de la table ETUDIANT
SELECT * FROM ETUDIANT;
Tester les exemples
Q01 : Afficher le Nom le numéro et date de naissance des étudiants
Sélection
L'opération de sélection permet de sélectionner des lignes (n-uplets, tuples) d'une (ou plusieurs) table(s) qui satisfont certaines conditions. Les conditions sont exprimées après la clause WHERE.
- Afficher la liste des étudiants de sexe masculin.
SELECT * FROM ETUDIANT WHERE Cdsexe='H';
Q02 : Liste des enseignants qui ont plus de 2 ans d'ancienneté dans le grade.
Projection et Sélection
Les opérations de projection et de sélection peuvent évidemment être utilisées dans la même requête SQL.
- Afficher le numéro et le nom des étudiants nés en 1980
SELECT Numetu, Nometu FROM ETUDIANT WHERE Dtnaiss>='1980-01-01' AND Dtnaiss<='1980-12-31';
Conversion des données et traitement des dates
Une date particulière doit être exprimé sous la forme : aaaa-mm-jj et non sous sa forme française jj-mm-aaaa.
On peut la considérer soit :
- Comme une chaîne de caractères. Par exemple '1998-06-25' ( le 25 juin 1998). On ne peut pas dans ce cas faire de calculs mais on peut faire des comparaisons.
- Comme une date.
Pour calculer la différence, en jours, entre 2dates il faut utiliser la fonction DATEDIFF
Syntaxe de la fonction DATEDIFF
DATEDIFF(Date2,Date1).
Date2 doit être supérieure à Date1
La fonction CURRENT_DATE permet de récupérer la date système.
Exemple : Pour connaitre l'âge des étudiants à la date du jour, il faut saisir : DATEDIFF(CURRENT_DATE,Dtnaiss)/365
Q03 : Nom des étudiants de sexe féminin nés après 1980
Clause ORDER BY
Il est possible, grâce à la clause ORDER BY, d'ordonner les résultats d'une requête en fonction de la valeur de certains attributs (colonnes).
- Afficher la liste des enseignants par grade et par ordre alphabétique décroissant des noms.
SELECT Grade, Nomens FROM ENSEIGNANT ORDER BY Grade, Nomens DESC;
La requête précédente, qui utilise les noms des colonnes, est équivalente à la requête suivante qui utilise les numéros des colonnes qui servent à ordonner les résultats.
SELECT Grade, Nomens FROM ENSEIGNANT ORDER BY 1, 2 DESC;
Tester les exemples