Voici le modèle relationnel de la base de données avec les clés primaires soulignées et les clés étrangères en italique :
CLIENTS (ID_Client, Nom, Prenom, Email, DateInscription) LIVRES (ISBN, Titre, Auteur, Prix, Stock, ID_Categorie) CATEGORIES (ID_Categorie, NomCategorie) COMMANDES (ID_Commande, ID_Client, DateCommande, Statut) DETAILS_COMMANDE (ID_Commande, ISBN, Quantite, PrixUnitaire)
Légende :
Notes sur les relations :
SELECT Titre, Prix FROM LIVRES WHERE Prix > 15;
SELECT Nom, Prenom FROM CLIENTS WHERE YEAR(DateInscription) = 2023;
SELECT L.Titre, C.NomCategorie FROM LIVRES L JOIN CATEGORIES C ON L.ID_Categorie = C.ID_Categorie;
SELECT C.NomCategorie, COUNT(*) AS NombreLivres FROM LIVRES L JOIN CATEGORIES C ON L.ID_Categorie = C.ID_Categorie GROUP BY C.ID_Categorie, C.NomCategorie;
SELECT Titre, Prix FROM LIVRES ORDER BY Prix DESC LIMIT 5;
SELECT DISTINCT C.Nom, C.Prenom FROM CLIENTS C JOIN COMMANDES CO ON C.ID_Client = CO.ID_Client WHERE YEAR(CO.DateCommande) = 2024;
SELECT CO.ID_Commande, SUM(DC.Quantite * DC.PrixUnitaire) AS MontantTotal FROM COMMANDES CO JOIN DETAILS_COMMANDE DC ON CO.ID_Commande = DC.ID_Commande GROUP BY CO.ID_Commande;
SELECT L.Titre FROM LIVRES L LEFT JOIN DETAILS_COMMANDE DC ON L.ISBN = DC.ISBN WHERE DC.ISBN IS NULL;
SELECT C.Nom, C.Prenom, SUM(DC.Quantite * DC.PrixUnitaire) AS MontantTotal FROM CLIENTS C JOIN COMMANDES CO ON C.ID_Client = CO.ID_Client JOIN DETAILS_COMMANDE DC ON CO.ID_Commande = DC.ID_Commande GROUP BY C.ID_Client, C.Nom, C.Prenom ORDER BY MontantTotal DESC LIMIT 1;
SELECT C.NomCategorie, COUNT(*) AS NombreLivres FROM CATEGORIES C JOIN LIVRES L ON C.ID_Categorie = L.ID_Categorie WHERE L.Stock < 10 GROUP BY C.ID_Categorie, C.NomCategorie HAVING COUNT(*) > 5;
SELECT Titre, Prix FROM LIVRES WHERE Prix > 15;
SELECT Nom, Prenom FROM CLIENTS WHERE YEAR(DateInscription) = 2023;
SELECT L.Titre, C.NomCategorie FROM LIVRES L, CATEGORIES C WHERE L.ID_Categorie = C.ID_Categorie;
SELECT C.NomCategorie, COUNT(*) AS NombreLivres FROM LIVRES L, CATEGORIES C WHERE L.ID_Categorie = C.ID_Categorie GROUP BY C.ID_Categorie, C.NomCategorie;
SELECT Titre, Prix FROM LIVRES ORDER BY Prix DESC LIMIT 5;
SELECT DISTINCT C.Nom, C.Prenom FROM CLIENTS C, COMMANDES CO WHERE C.ID_Client = CO.ID_Client AND YEAR(CO.DateCommande) = 2024;
SELECT CO.ID_Commande, SUM(DC.Quantite * DC.PrixUnitaire) AS MontantTotal FROM COMMANDES CO, DETAILS_COMMANDE DC WHERE CO.ID_Commande = DC.ID_Commande GROUP BY CO.ID_Commande;
SELECT L.Titre FROM LIVRES L WHERE L.ISBN NOT IN (SELECT ISBN FROM DETAILS_COMMANDE);
SELECT C.Nom, C.Prenom, SUM(DC.Quantite * DC.PrixUnitaire) AS MontantTotal FROM CLIENTS C, COMMANDES CO, DETAILS_COMMANDE DC WHERE C.ID_Client = CO.ID_Client AND CO.ID_Commande = DC.ID_Commande GROUP BY C.ID_Client, C.Nom, C.Prenom ORDER BY MontantTotal DESC LIMIT 1;
SELECT C.NomCategorie, COUNT(*) AS NombreLivres FROM CATEGORIES C, LIVRES L WHERE C.ID_Categorie = L.ID_Categorie AND L.Stock < 10 GROUP BY C.ID_Categorie, C.NomCategorie HAVING COUNT(*) > 5;