Vous êtes sur la page 1sur 2

DEPARTEMENT D’INFORMATIQUE

FACULTE DES SCIENCES ET TECHNIQUES FILIERE : BCG


UNIVERSITE SIDI MED BEN ABDELLAH SECTION : A-B-C
ANNEE 2019-2020

Série TD N° 4

Objectif de la série : Interrogation en SQL (SELECT)


Rappel : Syntaxe générale de la requête SELECT
SELECT [DISTINCT] projection : sélection des colonnes/expression du résultat
[FROM] données sources : tables d’un SELECT
[WHERE] sélection : condition de sélection
[ORDER BY [ASC|DESC]] tri du résultat
Base de données objet de la série
Schéma de la base de données : on dispose des 4 tables suivantes :
– enseignant(numens, nom , prenom, dateNaissance)
– cours(numcours, nom , nombreHeures, #numens )
– resultat(#numetu, #numcours, note )
– etudiant(numetu , nom , prenom , adresse , codePostale , ville , dateNaissance)
Les clés primaires sont soulignées et les clés étrangères sont précédées du caractère #.

1. Les noms de tous les étudiants enregistrés dans la table client sans répétition.

SELECT DISTINCT nom

FROM etudiant;

2. Les étudiants habitants à Fès ou Meknès

SELECT *
FROM etudiant
WHERE ville in (’Fès’, ‘Meknès’) ;
3. Les étudiants habitant à toute ville commençant par la lettre « T » et dont la troisième lettre est

«n » comme, Tanger, Tantan et etc.

SELECT *
FROM etudiant
WHERE ville LIKE ‘T ?n%’’ ;

4. Les numéros et noms de tous les étudiants habitant une ville dont la valeur est non encore renseignée.

SELECT numetu AS "numéro étudiant", nom


FROM etudiant WHERE ville IS NULLL ;

5. Les étudiants hors de Fès nés entre le 1er janvier 1990 et le 31 décembre 1994.

SELECT CONCAT(nom,’ ‘prenom) AS "Non Prénom"


FROM etudiant
WHERE dateNaissance >= ‘1990-01-1’ AND dateNaissance <= ‘1994-12-31‘ AND ville<>'Fès'
ou bien
SELECT CONCAT(nom,’ ‘prenom) AS "Non Prénom"
FROM etudiant
WHERE dateNaissance BETWEEN ‘1990-01-1’ AND ‘1994-12-31‘ AND ville<>'Fès'

~ 1/2~
6. L’âge de tous les étudiants inscrits en cours intitulé « Bases de données ».

Indication : year() est une fonction qui renvoie l’année de la date donnée en paramètre. Exemple :

year(#1/12/2014#) donne 2014

SELECT e.numetu, e.nom, (YEAR(DATE())-YEAR(e.dateNaissance)) AS Age


FROM etudiant e, cours c, resultat r
WHERE c.nom=’Bases de données’
AND c. numcours=r.numcours
AND r. numetu=e.numetu ;

7. Les notes avec les intitulés des cours de l’étudiant Ibrahimi Ali triées en ordre décroissant des notes.

SELECT c.nom, r.note


FROM etudiant e, cours c, resultat r
WHERE e.nom=’Ibrahimi’ AND e.prenom=’Ali’ AND e.numetu=r.numetu AND r.numcours=c.numcours
ORDER BY r.note DESC;

8. Les numéros et noms de tous les enseignants de l’étudiant numéro 4239.

SELECT DISTINCT e.numens, e.nom

FROM enseignant e, cours c, resultat r

WHERE e.numens =c.numens

AND c.numcours = r.numcours

AND numetu=4239

9. Les numéros et noms de tous les enseignants de l’étudiant Ibrahimi Ali triés en ordre alphabétique.

SELECT DISTINCT en.numens, en.nom


FROM enseignant en, etudiant et, cours c, resultat r
WHERE et.nom=’Ibrahimi’ AND et.prenom=’Ali’ AND et.numetu=r.numetu
AND r.numcours=c.numcours AND c.numens =en.numens
ORDER BY en.nom;
10. Les numéros et noms de tous les étudiants de l’enseignant numéro 87.

SELECT DISTINCT e.numetu, e.nom


FROM etudiant e, cours c, resultat r
WHERE c.numens =87 AND c.numcours=r.numcours AND r.numetu=e.numetu;
11. Le nombre d’enseignants intervenants dans le module « base de données ».

SELECT COUNT(*) AS "Nombre d’enseignants BD"


FROM cours
WHERE nom = ‘Base de données’;
12. Pour l’étudiant numéro 4444 : son nom, sa note minimale, sa note maximale et sa moyenne générale.

SELECT e.nom, min(r.note) , max(r.note), AVG(r.note)


FROM resultat r, etudiant e
WHERE r.numetu=e.numetu
And r.numetu = 4444;

~ 2/2 ~

Vous aimerez peut-être aussi