Projection
L'opération de projection consiste à 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 consiste à 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. 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