TD Chap 6 Correction

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 6

Travaux Dirigés Base de Données

Correction TD n°6 : Langage SQL


Exercice n°1 :
Soit un schéma relationnel composé de la relation Frs (numf, ville) et la relation Article
(code, prix, qte, #numf), on propose l’extension suivante des relations suivantes :

Frs Article
numf ville Code prix qte numf
F1 SBZ A1 1200 20 F2
F2 Sfax A2 3200 100 F3
F3 SBZ A3 450 50 F2

1. Donner la requête SQL correspondante à la création de la table Article. (code, numf,


ville : des chaines de caractères de taille maximale 30, prix et qte des entiers de taille
maximale 20)
Create table Article (
Code varcher2(30), prix number(20), qte number(20), numf varchar2(30),
Constraint pk_article primary key (code),
Constraint fk_frs foreign key (numf) references Frs (numf)
);
2. Donner la requête SQL correspondante à l’insertion des enregistrements de la table Frs
Insert into Frs values (‘F1’, ‘SBZ’) ;
Insert into Frs values (‘F2’, ‘Sfax’) ;
Insert into Frs values (‘F3’, ‘SBZ’) ;
3. Donner la commande SQL pour augmenter la quantité des Article de 10 du fournisseur F2.
Update Article set qte=qte+10 where numf=’F2’;
4. Donner la commande SQL pour afficher le nombre des articles fournit par le fournisseur
F2.
Select count(*) from Article where numf=’F2’ group by numf;
5. Donner la commande SQL pour supprimer les articles de numéro A2.
Delete from Article where numf=’F2’ ;
6. Donner la commande SQL pour supprimer la table Article et la table Frs (Respectez
l’ordre).
Drop table Article ;
Drop table Frs ;

Enseignante : Asma OUERTATANI


Travaux Dirigés Base de Données

Exercice n°2 :

Soit la table de données Personne : Personne (Nom, Age, Ville)

Nom Age Ville


Ali 29 Sidi Bouzid
Salem 32 Sousse
Mohamed 40 Sousse

1. Traduire les requêtes suivantes en Langage SQL.


Select * from Personne where Age >32 ;

Select * from Personne where Ville=’Sidi Bouzid’;

Select Ville from Personne where Nom= ‘Ali’ and Nom=’Salem’;

Select Nom from Personne where Ville=’Sousse’ ;

Exercice n°3 :

Soit le schéma de base de données relationnel suivant :


AGENCE (Num_Agence, Nom, Ville)
CLIENT (Num_Client, Nom, Ville)
COMPTE (Num_Compte, #Num_Agence, #Num_Client, Solde)
EMPRUNT (Num_Emprunt, #Num_Agence, #Num_Client, Montant)
I. Ecrire les requêtes suivantes en Algèbre Relationnelle puis en SQL:
1. Les noms et les villes des Agences :
π Nom, Ville (Agence)
select Nom, Ville from Agence ;

2. Les montants des emprunts.


π montant (Emprunt)

sel select montant from Emprunt ;

3. Liste des clients ayant la ville = “Sousse”.


σ<Ville=’Lyon’> (Client)
select * from Client where Ville=’Sousse’ ;
4. Les numéros des emprunts ayant un montant supérieur à 1200.
π num_emprunt (σ<montant>=1200> (Emprunt))
select num_emprunt from Emprunt where montant>1200 ;

5. Les noms des clients qui habitant “Sidi Bouzid”.


π Nom (σ<Ville=’Paris’> (Client))
select * from Client where Ville=’Sidi Bouzid’ ;

6. Les montants des emprunts des clients numéro 12 et 13.


π montant (σ<num_client=12 et num_client=13> (Emprunt))
select montant from Emprunt where num_client =12 and num_client=13;

II. Ecrire les requêtes suivantes en SQL :


1. Le nombre des clients.
Select count(*) from Client ;

2. Le montant maximum des emprunts.


Select max(montant) from Emprunt ;

3. Le montant minimum des emprunts.


Select min(montant) from Emprunt ;

4. La moyenne des soldes des Comptes.


Select avg(solde) from Compte ;

5. Nombre de clients habitant “Sidi Bouzid”.


Select count(*) from Client where Ville =’Sidi Bouzid’;

Exercice n°4 :

Vous travaillez dans une agence immobilière qui a mis en place un modèle relationnel
afin de gérer son portefeuille client.
Le modèle relationnel est le suivant :
Client (codeclt, nomclt, prenomclt, villeclt)
Representant (coderep, nomrep, prenomrep)
Appartement (ref, superficie, prix, #coderep, #codeclt)
1. L’agent immobilier souhaite avoir un certain nombre d’informations, effectuer les
requêtes SQL nécessaires afin de satisfaire l’agent immobilier.
a. . Les différentes villes des clients.
Select Distinct ville from Client ;
b. Le nombre de Client.
Select count(*) from Client ;
c. Le maximum des prix des appartements.
1. Select max(prix) from Appartement ;
d. Le minimum des prix des appartements.
1. Select min(prix) from Appartement ;
e. La liste des clients classés par ordre alphabétique de leurs prénoms.
1. Select * from Client order by prenomcl ;
f. La liste des appartements gérés par Sfaxi hedi.
1. Select * from Appartement A, Representant R where A.coderep =
R.coderep
2. and nomrep = ‘Sfaxi’ and prenomrep = ‘Hedi’ ;
g. La moyenne des prix des appartements.
1. Select avg(prix) from Appartement ;
Exercice n°5 :

Emp(NumE, NomE, Fonction, Embauche, Salaire, Comm,#NumD)


Dept(NumD, NomD, Lieu)

Exemple :Soit les extensions suivantes pour chaque table :

Dept NumD NomD Lieu


1 Droit Sfax
2 Commerce Sousse

Emp NomE Fonction Embauche Salaire Comm NumD


Amin Président 10/10/1979 10000 NULL NULL
Anas Doyen 01/10/2006 5000 NULL 1
Toto Stagiaire 01/10/2006 0 NULL 1
Al-Capone Commercial 01/10/2006 5000 100 2
a. Donnez la liste des employés ayant une commission (Comm) (non NULL) classé par
commission décroissante.
SELECT * FROM Emp WHERE Comm IS NOT NULL AND Comm!=NULL ORDER
BY Comm DESC ;

b. Donnez la liste des employés travaillant à Créteil

SELECT * FROM Emp E, Dept D WHERE E.NumD=D.NumD AND


Lieu=’Créteil’;

c. Donnez le nombre de commissions non NULL.


SELECT COUNT(Comm) FROM Emp WHERE Comm IS NOT NULL;
d. Donnez la liste des employés gagnant plus que la moyenne des salaires de l’entreprise
SELECT * FROM Emp WHERE Salaire > (SELECT AVG(Salaire) FROM Emp);

Exercice n°7:

1. SELECT COUNT( NumET)


FROM I n s c r i p t i o n
WHERE Semestre = ’ S1 ’ AND Annee = 2014 ;

2. SELECT Statut AS StatutEtudiant , AVG(Age ) AS AgeMoy


FROM Etudiant
WHERE Vi l l e = ’Lyon ’
GROUP BY Statut ;

3. SELECT E.NomEt, COUNT(DISTINCT I .NumUE) AS NbUE


FROM I n s c r i p t i o n I, Etudiant E where E.NumEt = I .NumEt
GROUP BY E.NumEt, E.NomEt ;

4. SELECT E.NomEt, MAX( I . NoteFinale ) AS Moyenne


FROM I n s c r i p t i o n I, Etudiant E where I .NumEt = E.NumEt
WHERE I . Annee=2014
GROUP BY E.NumEt, E.NomEt ;

5. SELECT UE.NomUE, I . Annee , I . semestre AVG( I . notefinale)


FROM I n s c r i p t i o n I, UE where I .NumUE = E.NumUE
GROUP BY UE.NumUE, UE.NomUE, I . Annee , I . Semestre
ORDER BY I.Annee DESC ;
6. SELECT count( UE.nbECTS) AS NbECTS
FROM Etudiant E, I n s c r i p t i o n I, UE where E. numEt = UE. numEt
AND I .NumUE=UE.NumUE
E.Nom=’HALIDE’ AND E. prenom = ’Yves ’
AND I . Annee = 2014
AND I . noteFinale>= 1 0 ;

7. SELECT UE.NomUE
FROM Etudiant E, Inscription I, UE where E. numEt=I . numEt
And I .numUE = UE.numUE
WHERE E. Age <=20
GROUP BY UE.NumUE, UE.NomUE
HAVINGCOUNT(*)>3
ORDER BY UE.NomUE, UE.numUE;

8. SELECT UE.NomUE, I . Annee , I . Semestre , AVG( I . NoteFinale ) AS Moyenne


FROM I n s c r i p t i o n I, UE where I .numUE=UE.numUE
GROUP BY UE.NumUE, UE.NomUE, I . Annee , I . Semestre
HAVING AVG( I . NoteFinale ) < 1 0 ;

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy