Vous êtes sur la page 1sur 3

1er exercice 

: gestion d’une agence immobilière

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, adresseclt, CPclt, villeclt)
APPARTEMENT (ref, superficie, pxvente, secteur, #coderep, #codeclt)
REPRESENTANT (coderep, nomrep, prenomrep)

L’agent immobilier souhaite avoir un certain nombre d’informations :


a. la liste des clients classés par ordre alphabétique
b. la liste des appartements situés à Villefranche et gérés par Carole Palege
c. la moyenne par secteur des prix des appartements
d. le nombre d’appartements dont la superficie est supérieur à 80 m²

Par ailleurs, afin de mettre à jour sa base de données, l’agent immobilier vous demande :
e. de supprimer l’appartement référencé 2006A
f. de modifier le prix de l’appartement 2014G : il passe à 230 000 €.

Effectuer les requêtes SQL nécessaires afin de satisfaire l’agent immobilier.

2ème exercice : gestion d’un service après vente

Le responsable du SAV d’une entreprise d’électroménager a mis en place une petite base de données
afin de gérer les interventions de ces techniciens.
Le modèle relationnel à la source de cette base de données est le suivant :
CLIENT (codeclt, nomclt, prenomclt, adresse, cp, ville)
PRODUIT (référence, désignation, prix)
TECHNICIEN (codetec, nomtec, prenomtec, tauxhoraire)
INTERVENTION (numero, date, raison, #codeclt, #référence, #codetec)

Le responsable vous demande d’écrire en langage SQL les requêtes suivantes :


a. la liste des produits (référence et désignation), classés du moins cher au plus cher
b. le nombre d’interventions par technicien
c. les désignations de produits pour lesquelles la moyenne des prix est supérieure à 300 €
d. la liste des clients ayant demandé une intervention pour des produits d’un prix supérieur à 300

e. les interventions effectuées par le technicien ayant le code 2381 entre le 1 er juillet et le 31 août
2006

f. Par ailleurs, il vous informe que le produit référencé 548G a vu son prix augmenter (nouveau prix  :
320 €).
g. Vous apprenez également par le directeur des ressources humaines qu’un nouveau technicien a été
recruté : son code est le 3294, il s’appelle Denis Cavacho et est rémunéré à un taux horaire de 15 €.
Solutions :
Exercice 01 :
CLIENT (codeclt, nomclt, prenomclt, adresseclt, CPclt, villeclt)
APPARTEMENT (ref, superficie, pxvente, secteur, #coderep, #codeclt)
REPRESENTANT (coderep, nomrep, prenomrep)
a. la liste des clients classés par ordre alphabétique
SELECT nomclt, prenomclt
FROM CLIENT
ORDER BY nomclt, prenomclt ASC
b. la liste des appartements situés à Villefranche et gérés par Carole Palege
SELECT ref, superficie, pxvente, secteur
FROM APPARTEMENT
WHERE secteur = ‘Villefranche’
and coderep = (SELECT coderep from REPRESENTANT WHERE nomrep=’ Carole’ and
prenomrep=’ Palege’)

c. la moyenne par secteur des prix des appartements


SELECT secteur, AVG(pxvente)
FROM APPARTEMENT
GROUP BY secteur

d. le nombre d’appartements dont la superficie est supérieur à 80 m²


SELECT count (*)
FROM APPARTEMENT
WHERE superficie>80

e. de supprimer l’appartement référencé 2006A


DELETE FROM APPARTEMENT
WHERE ref=’2006A’

f. de modifier le prix de l’appartement 2014G : il passe à 230 000 €.


UPDATE APPARTEMENT
SET pxvente=230 000
WHERE ref=’2014G’

Exercice 02 :
CLIENT (codeclt, nomclt, prenomclt, adresse, cp, ville)
PRODUIT (référence, désignation, prix)
TECHNICIEN (codetec, nomtec, prenomtec, tauxhoraire)
INTERVENTION (numero, date, raison, #codeclt, #référence, #codetec)

Le responsable vous demande d’écrire en langage SQL les requêtes suivantes :


a. la liste des produits (référence et désignation), classés du moins cher au plus cher
SELECT référence, désignation
FROM PRODUIT
ORDER BY prix ASC
b. le nombre d’interventions par technicien
SELECT codetec, count (numero)
FROM INTERVENTION
GROUP BY codetec

c. les désignations de produits pour lesquelles la moyenne des prix est supérieure à 300 €
SELECT désignation, AVG (prix)
FROM PRODUIT
GROUP BY designation
HAVING AVG (prix)>300

d. la liste des clients (nom, prenom) ayant demandé une intervention pour des produits d’un prix
supérieur à 300 €
SELECT nomclt, prenomclt
FROM CLIENT
WHERE codeclt IN
(SELECT codeclt
FROM INTERVENTION
WHERE reference IN (SELECT reference FROM PRODUIT WHERE prix>300)
)

e. les interventions (codetec, numero, date, raison) effectuées par le technicien ayant le code
2381 entre le 1er juillet et le 31 août 2006
SELECT codetec, numero, date, raison
FROM INTERVENTION
WHERE codetec=2381
and date BETWEEN DATE(‘01/07/2006’) and DATE(‘31/08/2006’)

f. Par ailleurs, il vous informe que le produit référencé 548G a vu son prix augmenter (nouveau
prix : 320 €).
UPDATE PRODUIT
SET prix=320
WHERE référence=’ 548G’

g. Vous apprenez également par le directeur des ressources humaines qu’un nouveau technicien
a été recruté : son code est le 3294, rémunéré à un taux horaire de 15 € et il s’appelle Denis
Cavacho.
INSERT INTO TECHNICIEN
VALUES (3294, ‘Denis’ , ‘Cavacho’, 15)

Vous aimerez peut-être aussi