EXERCICE D’APPLICATION – LANGAGE SQL
1. La liste des vendeurs
SELECT *
FROM Vendeur;
2. La liste des potentiels acheteurs
SELECT *
FROM Acheteur;
3. La liste de tous les articles d’une boutique
SELECT Articles.*
FROM Articles
LEFT JOIN Boutique ON [Link] = [Link];
4. La liste de toutes les boutiques
SELECT *
FROM Boutique;
5. Les articles qui ont été achetés
SELECT DISTINCT Articles.*
FROM Articles
LEFT JOIN Achat ON [Link] = [Link]
WHERE [Link] IS NOT NULL;
6. Les articles vendus
SELECT DISTINCT Articles.*
FROM Articles
RIGHT JOIN Vente ON [Link] = [Link];
7. Les articles achetés et vendus par la même personne
SELECT DISTINCT Articles.*
FROM Articles
LEFT JOIN Achat ON [Link] = [Link]
LEFT JOIN Vente ON [Link] = [Link]
WHERE [Link] = [Link];
8. Les vendeurs qui vendent les mêmes articles
SELECT [Link], [Link], [Link]
FROM Vente v1
LEFT JOIN Vente v2 ON [Link] = [Link] AND [Link] <> [Link]
LEFT JOIN Articles ON [Link] = [Link]
LIMIT 0, 25;
9. Les acheteurs habitant Pikine
SELECT *
FROM Acheteur
WHERE adresse LIKE '%Pikine%';
10. Les vendeurs et acheteurs ayant la même adresse
SELECT *
FROM Acheteur
LEFT JOIN Vendeur ON [Link] = [Link];
11. Les articles dont le stock est inférieur à 10
SELECT *
FROM Articles
WHERE quantitéStock < 10;
12. Les articles achetés au vendeur Abdou Faye
SELECT DISTINCT Articles.*
FROM Articles
JOIN Vente ON [Link] = [Link]
JOIN Vendeur ON [Link] = [Link]
WHERE [Link] = 'Faye' AND [Link] = 'Abdou';
13. Les articles achetés à la boutique 18 et dont le prix_unitaire est égale à 15 000
SELECT DISTINCT Articles.*
FROM Articles
LEFT JOIN Boutique ON [Link] = [Link]
WHERE [Link] = 18 AND Articles.prix_unitaire = 15000;
14. Le vendeur Doudou Gueye qui a vendu l’article puce orange 4g, à l’acheteur
Alimatou BA
SELECT *
FROM Vente
LEFT JOIN Vendeur ON [Link] = [Link]
LEFT JOIN Acheteur ON [Link] = [Link]
LEFT JOIN Articles ON [Link] = [Link]
WHERE [Link] = 'Doudou' AND [Link] = 'Gueye'
AND [Link] = 'Alimatou' AND [Link] = 'BA'
AND [Link] = 'puce orange 4g';
15. Les boutiques situées dans la même zone que leurs acheteurs et vendeurs
SELECT DISTINCT Boutique.*
FROM Boutique
LEFT JOIN Vendeur ON [Link] = [Link]
LEFT JOIN Acheteur ON [Link] = [Link];
16. Les Vendeurs portant le nom Diop
SELECT *
FROM Vendeur
WHERE nom LIKE '%Diop%';
17. Les achats dont le montant est compris entre 150 000 et 250 000
SELECT Achat.*, [Link], Articles.prix_unitaire,
(CAST([Link] AS UNSIGNED) * CAST(Articles.prix_unitaire AS
UNSIGNED)) AS montant
FROM Achat
LEFT JOIN Articles ON [Link] = [Link]
WHERE (CAST([Link] AS UNSIGNED) * CAST(Articles.prix_unitaire AS
UNSIGNED)) BETWEEN 150000 AND 250000;
18. Les articles dont le nom commence par C ou O
SELECT *
FROM Articles
WHERE designation LIKE 'C%' OR designation LIKE 'O%';
19. Les boutiques dont le chiffre d’affaire dépasse 1 000 000
SELECT *
FROM Boutique
WHERE chiffreAffaire > 1000000;
20. Les boutiques qui ont vendu beaucoup plus d’articles
SELECT Boutique.*, COUNT([Link]) AS total_articles
FROM Boutique
RIGHT JOIN Articles ON [Link] = [Link]
GROUP BY [Link]
ORDER BY total_articles DESC;