Vous êtes sur la page 1sur 6

Etablissement : ISET-Charguia Département : Technologies de l’Informatique

Matière : Bases de données Année Universitaire : 2022 - 2023


Niveau : 2ème DSI – RSI – SEM
TD 4
Le langage SQL
Le langage de Manipulation des Données (LMD)

Exercice 1
Soit la base de données intitulée "gestion_projet" permettant de gérer les projets relatifs au
développement de logiciels.
Elle est décrite par le schémas relationnel suivant :
Developpeur (NumDev, NomDev, AdrDev, EmailDev, TelDev)
Projet (NumProj, TitreProj, DateDeb, DateFin)
Logiciel (CodLog, NomLog, PrixLog, #NumProj)
Realisation (#NumProj, #NumDev)

Travail à faire :
1. Afficher les noms et les prix des logiciels appartenant au projet ayant comme titre
« Gestion de stock », triés dans l’ordre décroissant des prix.
2. Afficher le total des prix des logiciels du projet numéro 10.
2’. Calculer le total des prix des logiciels pour chaque projet.
3. Afficher le nombre de développeurs qui ont participé au projet intitulé « gestion de
stock ».
4. Afficher les projets qui ont plus que 5 logiciels.
5. Afficher les numéros et noms des développeurs qui ont participé dans tous les
projets.
6. Afficher les numéros de projets dans lesquels tous les développeurs participent dans
sa réalisation.
7. Afficher les numéros et titres des projets non réalisés.

TD4 – Le Langage SQL : Le Langage de Manipulation des Données 1/6


Exercice 2
Soit, ci-dessous, le schéma relationnel d’une base de données concernant un cycle de
formation destiné à des étudiants. Il regroupe un ensemble de matières. On considère que
chaque enseignant n’enseigne qu’une seule matière et qu’à la fin du cycle de formation, une
note par matière, est attribuée à chaque étudiant.
D’autre part, les étudiants peuvent ne pas suivre les mêmes matières.
ETUDIANT (CodeEt, NomEt, DatnEt)
MATIERE (CodeMat, NomMat, CoefMat)
ENSEIGNANT (CodeEns, NomEns, GradeEns, #CodeMat)
NOTE (#CodeEt, #CodeMat, note)

Travail à faire :
1. Lister les informations relatives aux étudiants (Code, Nom et Date de naissance)
selon l’ordre alphabétique croissant du nom.
2. Lister les noms et les grades des enseignants de la matière dont le nom est ‘BD’.
3. Donner la liste distincte formée des codes, des noms et des coefficients des
différentes matières qui sont enseignées par des enseignants de grade ‘Grd3’.
4. Donner la liste des matières (Nom et Coefficient) qui sont suivies par l’étudiant de
code ‘Et321’.
5. Lister le nombre d’enseignants de la matière dont le nom est ‘Informatique’.

Exercice 3
Soit le schéma relationnel suivant :
Salle (NomS, Horaire, capacité, #Titre)
Film (Titre, réalisateur, durée, acteur)
Producteur (Producteur, #Titre)
Vu (Spectateur, #Titre)
Aime (Amateur, #Titre)
Sachant que :
 La relation Vu décrit les titres des films vus par les spectateurs. Evidemment un
spectateur peut voir plusieurs films.

TD4 – Le Langage SQL : Le Langage de Manipulation des Données 2/6


 La relation Aime décrit les films appréciés par les spectateurs (amateurs).
Evidemment, un spectateur peut aimer plusieurs films.

Exprimez en SQL les requêtes suivantes :


1. Où et à quel horaire peut-on voir le film « Frozen » ?
2. Quels sont les amateurs qui aiment tous les films ?
3. Quels sont les spectateurs qui aiment tous les films qu’ils voient ?

Exercice 4
Vous êtes responsable d’une marque de vêtements, qui possède plusieurs boutiques en
Tunisie. Vous gérez la base de données où sont stockées toutes les informations relatives
aux achats et à l’état des stocks dans les différentes boutiques.
Chaque boutique est identifiée par un numéro, et on connait son adresse, sa ville et son
département. Un vêtement possède un numéro (celui qui apparait sur le code barre), ainsi
qu’un type (robe, jupe, pantalon, veste, chemise, etc.), une couleur, une taille (par exemple
XS, S, M, etc.) et un prix unitaire.
Pour chaque boutique, on connait le nombre d’exemplaires de chaque vêtement (indiqué
par qttéStock). Cette quantité peut être nulle (=0) pour un vêtement et une boutique
donnée, si la boutique ne possède à cet instant aucun exemplaire du vêtement en question.
L’historique des achats effectués par les clients dans les différentes boutiques de la chaîne
est également enregistré dans la base de données. Il est possible d’acheter plusieurs
exemplaires d’un même vêtement lors d’un même achat : le nombre d’exemplaires est alors
indiqué dans l’attribut qttéAchat.

Les tables de la base sont les suivantes :


Vêtement (nVet, type, couleur, taille, prix)
Boutique (nBout, adr, ville, département)
Stock (#nBout, #nVet, qttéStock)
Client (nCli, nomCli, dateNaiss, villeCli)
Achat (#nCli, #nVet, #nBout, date, qttéAchat)

TD4 – Le Langage SQL : Le Langage de Manipulation des Données 3/6


Traduire en SQL les requêtes suivantes :
1. Nombre de villes différentes dans lesquelles M. Ben Mlouka a acheté des chemises.
2. Nom des clients ayant acheté des vêtements dont la couleur contient le mot rose
(par exemple rose vif, rose pâle, vieux rose), triés par prix décroissant de ces
vêtements.
3. Montant total dépensé par chaque client Bizertin (uniquement pour les clients ayant
acheté au total plus de 10 vêtements de même type ou de type différent).

Exercice 5
On dispose du schéma relationnel suivant :
Catégorie (codecateg, intitulécateg, nbheures)
Spécialité (Codespe, intituléspe)
Pilote (numpilote, nom, prénom, datenais, adresse, ville, CP, dateemb, salaire,
#codecateg, # codespe)
Avion (numavion, typeavion, capacité, puissance, dateachat)
Vol (numvol, Aéroportdépart, Aéroportarrivé, heuredépart, heurearrivée)
Jour (numjour, intituléjour)
JourVol (# numvol, # numjour)
Piloter (# numpilote, # numavion, # numvol, # Copilote, Date)

NB : Chaque jour de la semaine est codé par un numéro ; 1 pour Lundi, 7 pour Dimanche.

Exprimer les requêtes suivantes en SQL :


1. Donner la liste des vols (num vol, Aéroportdépart, Aéroportarrivé) qui ont lieu les
mêmes jours que le vol ‘AF028’.
2. Donner le numéro, le nom et le salaire des pilotes qui ont la même spécialité et la
même catégorie que le pilote qui a piloté le vol ‘TU 525’ le ‘18/12/2018’.
3. Donner la durée et l’aéroport de destination de Vol ‘TU723’.
4. Quels sont les pilotes qui possèdent toutes les spécialités ?
5. Quels sont les pilotes qui n’ont participé à aucun vol ?
6. Donner les pilotes qui gagnent plus que le pilote qui a effectué au moins un vol pour
destination l’Aéroport de ‘Tunis Carthage’.

TD4 – Le Langage SQL : Le Langage de Manipulation des Données 4/6


Exercice 6 (Examen BD 2020-2021)
Nous souhaitons gérer une base de données d’élèves dans une école.
Un élève appartient à une seule et unique maison et suit plusieurs matières. Un professeur
n’enseigne qu’une seule et unique matière. Un professeur peut enlever ou donner des
points à un élève en fonction de son comportement.

On obtient le schéma relationnel suivant :


Maison (idMaison, nom, couleur)
Eleve (idEleve, nom, prenom, #idMaison)
Professeur (idProfesseur, nom, prenom)
Matiere (idMatiere, intitule, #idProfesseur)
Points (#idProfesseur, #idEleve, motif, nbPoints)
EleveSuitMatiere (#idEleve, #idMatiere)

Travail demandé
Écrire chaque requête en SQL :
1. Créer la table Points sachant que :

Champ Type
idProfesseur VARCHAR2(5)
idEleve VARCHAR2(5)
Motif VARCHAR2(20)
nbPoints NUMBER

NB : le nombre de points doit être compris entre -20 et 20.

2. Le professeur ayant l’id ‘P1234’ décide d’enlever 3 points de l’élève identifié par

‘E1234’ suite au motif d’indiscipline sachant que ce professeur a déjà enlevé des

points à ce même élève pour ce même motif.

3. Quels élèves ont un prénom commençant par un ‘M’ ?

TD4 – Le Langage SQL : Le Langage de Manipulation des Données 5/6


4. Afficher les nom et prénoms des élèves qui appartiennent à la maison ayant le nom

‘Jeune’.

5. On veut obtenir le nom, le prénom et le nombre de points total obtenu par chaque

élève.

6. Quels sont les noms et prénoms des élèves ayant obtenu un nombre de points

supérieur à la moyenne de tous les points obtenus par tous les élèves ?

TD4 – Le Langage SQL : Le Langage de Manipulation des Données 6/6

Vous aimerez peut-être aussi