Exercice SQL corrigé les requêtes SQL banque

1. Liste des agences ayant des comptes-clients

SELECT DISTINCT Nom FROM AGENCE, COMPTE
WHERE AGENCE.Num_Agence = COMPTE.Num_Agence

2. Clients ayant un compte à “Agadir”

SELECT CLIENT.Nom FROM CLIENT, AGENCE, COMPTE
WHERE AGENCE.Num_Agence = COMPTE.Num_Agence
AND CLIENT.Num_Client = COMPTE.Num_Client
AND AGENCE.Ville = “Agadir”

3. Clients ayant un compte ou un emprunt à “Agadir”

SELECT CLIENT.Nom FROM CLIENT, AGENCE, COMPTE
WHERE CLIENT.Num_Client = COMPTE.Num_Client
AND AGENCE.Num_Agence = COMPTE.Num_Agence
AND AGENCE.Ville = “Agadir”
UNION
SELECT CLIENT.Nom FROM CLIENT, AGENCE, EMPRUNT
WHERE CLIENT.Num_Client = EMPRUNT.Num_Client
AND AGENCE.Num_Agence = EMPRUNT.Num_Agence
AND AGENCE.Ville = “Agadir”

4. Clients ayant un compte et un emprunt à “Agadir”

SELECT CLIENT.Nom FROM CLIENT, AGENCE, COMPTE
WHERE CLIENT.Num_Client = COMPTE.Num_Client
AND AGENCE.Num_Agence = COMPTE.Num_Agence
AND AGENCE.Ville = “Agadir”
intersect
SELECT CLIENT.Nom FROM CLIENT, AGENCE, EMPRUNT
WHERE CLIENT.Num_Client = EMPRUNT.Num_Client
AND AGENCE.Num_Agence = EMPRUNT.Num_Agence
AND AGENCE.Ville = “Agadir”

5. Clients ayant un compte et pas d’emprunt à “Agadir”

SELECT CLIENT.Nom FROM CLIENT, AGENCE, COMPTE
WHERE CLIENT.Num_Client = COMPTE.Num_Client
AND AGENCE.Num_Agence = COMPTE.Num_Agence
AND AGENCE.Ville = “Agadir”
minus
SELECT CLIENT.Nom FROM CLIENT, AGENCE, EMPRUNT
WHERE CLIENT.Num_Client = EMPRUNT.Num_Client
AND AGENCE.Num_Agence = EMPRUNT.Num_Agence
AND AGENCE.Ville = “Agadir”

6. Clients ayant un compte et nom de la ville où ils habitent

Première solution :
SELECT Nom, Ville FROM CLIENT, COMPTE
WHERE CLIENT.Num_Client = COMPTE. Num_Client
Deuxième solution :
SELECT Nom, Ville FROM CLIENT
WHERE Num_Client IN (
SELECT Num_Client FROM COMPTE)

7. Clients ayant un compte à “ wafa-agadir ” et nom de la ville où ils habitent

Première solution :

SELECT CLIENT.Nom, CLIENT.Ville FROM CLIENT, AGENCE, COMPTE
WHERE CLIENT.Num_Client = COMPTE. Num_Client
AND AGENCE.Num_Agence = COMPTE.Num_Agence
AND AGENCE.Nom = “ wafa-agadir ”

Deuxième solution :

SELECT Nom, Ville FROM CLIENT
WHERE Num_Client IN (
SELECT Num_Client FROM COMPTE WHERE Num_Agence IN (
SELECT Num_Agence FROM AGENCE WHERE Nom = “wafa-agadir”))

8. Clients ayant un compte dans une agence où “Ahmed” a un compte

Première solution :

SELECT Nom FROM CLIENT, COMPTE
WHERE CLIENT.Num_Client = COMPTE.Num_Client AND Num_Agence IN (
SELECT Num_Agence FROM CLIENT, COMPTE
WHERE CLIENT.Num_Client = COMPTE.Num_Client AND Nom = “Ahmed”)

Deuxième solution :

SELECT Nom FROM CLIENT WHERE Num_Client IN (
SELECT Num_Client FROM COMPTE WHERE Num_Agence IN (
SELECT Num_Agence FROM CLIENT, COMPTE
WHERE CLIENT.Num_Client = COMPTE.Num_Client AND Nom = “Ahmed”))

9. Agences ayant un actif plus élevé que toute agence de « AAAA »

SELECT Nom FROM AGENCE WHERE Actif > ALL (
SELECT Actif FROM AGENCE WHERE Ville = “AAAA”)

11. Clients ayant un compte dans au-moins une agence d“AAAA”

Première solution :

SELECT Nom FROM CLIENT WHERE Num_Client IN (
SELECT Num_Client FROM COMPTE WHERE Num_Agence IN (
SELECT Num_Agence FROM AGENCE WHERE Ville = “AAAA”))

Deuxième solution :

SELECT CLIENT.Nom FROM CLIENT, COMPTE, AGENCE
WHERE CLIENT.Num_Client = COMPTE.Num_Client
AND COMPTE.Num_Agence = AGENCE.Num_Agence
AND AGENCE.Ville = “AAAA”

12. Emprunteurs de l »‘ »agence “Grédit-Agadir” classés par ordre alphabétique

SELECT Nom FROM CLIENT WHERE Num_Client IN (
SELECT Num_Client FROM EMPRUNT WHERE Num_Agence IN (
SELECT Num_Agence FROM AGENCE WHERE Nom = “Grédit-Agadir”))
ORDER BY Nom

13. Solde moyen des comptes-clients de chaque agence

SELECT Nom, avg(Solde) FROM AGENCE, COMPTE
WHERE AGENCE.Num_Agence = COMPTE.Num_Agence
GROUP BY Nom

14. Solde moyen des comptes-clients des agences dont le solde moyen est > “10 000”

SELECT Nom, avg(Solde) FROM AGENCE, COMPTE
WHERE AGENCE.Num_Agence = COMPTE.Num_Agence
GROUP BY Nom
HAVING avg(Solde) > 10000

15. Nombre de clients habitant “ Safi ”

SELECT count(*) FROM CLIENT WHERE Ville = “Safi”

16. Nombre de clients de l’agence “CETELEM ” n’ayant pas leur adresse dans la relation CLIENT

Première solution :

SELECT count(*) FROM CLIENT WHERE Ville = NULL AND Num_Client IN (
SELECT Num_Client FROM COMPTE WHERE Num_Agence IN (
SELECT Num_Agence FROM AGENCE WHERE Nom = “CETELEM ”))

Deuxième solution :

SELECT count(*) FROM CLIENT, COMPTE, AGENCE
WHERE Ville = NULL
AND CLIENT.Num_Client = COMPTE.Num_Client
AND COMPTE.Num_Agence = AGENCE.Num_Agence
AND AGENCE.Nom = “CETELEM ”

17. Insérer le n-uplet < leila, Agadir > dans la relation CLIENT

INSERT INTO CLIENT VALUES (130765, “leila”, “Agadir”)

18. Diminuer l’emprunt de tous les clients habitant “Tanger” de “5%”

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *