SQL : projection, sélection

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

Sommaire SQL

Q01 : Afficher le Nom le numéro et date de naissance des étudiants

Sommaire SQL

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.

Sommaire SQL

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

Sommaire SQL

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

Section suivante | Section précédente | Sommaire SQL