Telechargé par elyaakoubyanass2

Travaux PratiquesBD

publicité
Bases de données
Travaux Pratiques
TP°2 : Manipulation et développement des BDR
(SQL)
Exercice 1 :
On considère une base de données relative à une école. Dans cette base, les élèves sont
affectés à des classes. De même, les professeurs enseignent suivant un certain nombre
d'heures par semaine. Le modèle conceptuel dans le formalisme entité-association est
donné ci-dessous :
Avec
numE : numéro d'élève (unique)
nomE : nom d'élève. Non nul
nomC : nom de classe (unique)
numP : numéro de professeur (unique)
nomP : nom de professeur. Non nul
nbh : nombre d'heures effectuées par un professeur
dans une classe. Le nombre d’heures doit être positif
et inférieur à 72. Par défaut, égal à 0
Ce MCD est traduit en un schéma relationnel en appliquant les règles usuelles :
ELEVE (#numE, nomE, #nomC)
CLASSE (#nomC)
PROFESSEUR (#numP, nomP)
SERVICE (#numP, #nomC, nbh)
1 Créer les quatre tables,
2 Utilisant des requêtes SQL :
a) Insérer des enregistrements dans les tables comme montré sur la figure en bas,
b) Afficher la liste des élèves de la classe 'CM1'
c) Modifier le nom du professeur identifié par le numP=6 à « DUVALLE »
d) Modifier le nom et la classe de l’élève dont numE=11 en respectivement
« FIARD » et « CE1 »
e) Supprimer l’élève dont numE=22
f) Supprimer tous les élèves de la classe « CE2 »
g) Donner la liste des élèves qui ont 'DUBALAI' comme professeur en utilisant la
jointure
h) Donner le nombre d'heures effectuées par le professeur 'DUBALAI' en utilisant la
jointure
Page 1
Bases de données
Exercice 2 :
On considère une base de données constituée des deux tables suivantes :
no
nom
prenom
Profession
dt_embauche
salaire
commission
no_departement
no
depart_nom
directeur
ville
<pk>
<fk>
<pk>
<fk>
Table : Employes
NUMBER(7)
VARCHAR2(25)
VARCHAR2(25)
VARCHAR2(25)
DATE
NUMBER(11,2)
NUMBER(11,2)
NUMBER(7)
not null
not null
null
null
null
null
null
not null
Table : Departements
NUMBER(7)
VARCHAR2(25)
NUMBER(7)
VARCHAR2(25)
not null
not null
not null
not null
Remplissez les tables comme suit :
Donner les requêtes pour :
1 Faire le produit cartésien entre Employés et Départements
Page 2
Bases de données
2 Faire la jointure entre Employés et Départements
3 Donnez les noms des employés en majuscule et les noms de leur département en
minuscule. Utiliser les fonctions UPPER et LOWER
4 Donnez la moyenne des salaires des employés. Utiliser la fonction MEAN
5 Donnez le salaire minimal des employés. Utiliser la fonction MIN
6 Donnez le salaire maximal des employés. Utiliser la fonction MAX
7 Augmenter les salaires des employés par 10%
8 Supprimer les employés dont le nom contient « J » et qui travaillant à Boston
Exercice 3:
On considère une base de données pour la gestion d’un entrepôt constituée des tables
suivantes :
no
nom
prenom
utilisateur
dt_entree
commentaires
superieur_no
titre
service_no
salaire
pct_commission
no
nom
continent_no
<pk>
<fk>
<fk>
<pk>
<fk>
no
nom
<pk>
no
nom
description
prix_conseille
<pk>
ligne_no
produit_no
prix
quantite
qte_livree
commande_no
<pk>
<fk>
Table : e_emp
NUMBER(7)
VARCHAR2(25)
VARCHAR2(25)
VARCHAR2(8)
DATE
VARCHAR2(255)
NUMBER(7)
VARCHAR2(25)
NUMBER(7)
NUMBER(11,2)
NUMBER(4,2)
not null
not null
null
null
null
null
null
null
null
null
null
Table : e_service
NUMBER(7)
VARCHAR2(25)
NUMBER(7)
not null
not null
null
Table : e_continent
NUMBER(7)
VARCHAR2(50)
not null
not null
Table : e_produit
NUMBER(7)
VARCHAR2 (50)
VARCHAR2 (255)
NUMBER(10,2)
Table : e_ligne
NUMBER (7)
NUMBER (7)
NUMBER(10,2)
NUMBER(9)
NUMBER(9)
NUMBER(7)
not null
not null
null
null
not null
not null
null
null
null
not null
Page 3
Bases de données
Donner l’équivalent en SQL pour ;
1 Créer les tables ci-dessus
2 Donner la liste des services dont le numéro est supérieur à 45.
3 Donner la liste des employés dont le nom commence par "M".
4 Donner la liste des employés n’ayant pas de commission.
5 Donner la liste des employés qui ont les fonctions suivantes : Magasinier, Chef
d’entrepôt.
6 Donner la liste des employés gagnant entre 1400 et 2000 et ayant intégré la société
après le 20 janvier 1992.
7 Donner la liste des employés dont la commission est supérieure à 200, classés dans
l’ordre croissant des commissions.
8 Donner la liste des employés triés par titre et pour chaque titre triés par salaire
décroissant.
9 Donner la liste des employés et des services dans lesquels ils exercent.
10 Donner la liste des numéros de produits qui n’ont jamais été commandés.
11 Donner la liste des employés travaillant en Europe et ayant le même titre que SMITH.
12 Donner la liste des employés (nom, prénom, date d’entrée, salaire et numéro de
service) travaillant dans un service qui contient au moins un représentant Commercial.
13 Afficher les informations du service ayant le plus d’employés : son numéro, son nom,
le nom du continent où il se trouve et le nombre d’employés y travaillant.
Page 4
Téléchargement