SQL : projection, sélection

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

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 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.

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. 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