COMPTE
RENDU
Préparé Par
(séance 2)
Merabti Asmae
Encadré par
Riffi Jamal
2024-2025
Séance 2
1. Création des Tables
TableauClient
CREATE TABLE Client (
ID_Client INT PRIMARY KEY,
Nom NVARCHAR(50),
Prenom NVARCHAR(50),
Ville NVARCHAR(50)
);
TableauProduit
CREATE TABLE Produit ( ID_Produit INT PRIMARY KEY,
Nom_Produit NVARCHAR(100),
Prix DECIMAL(10,2) );
TableauCommande
CREATE TABLE Commande (
ID_Commande INT PRIMARY KEY,
ID_Client INT FOREIGN KEY REFERENCES Client(ID_Client),
ID_Produit INT FOREIGN KEY REFERENCES
Produit(ID_Produit),
Quantite INT,
DateCommande DATE
);
2. Insertion des données
Ajout des clients
INSERT INTO Client (ID_Client, Nom, Prenom, Ville) VALUES
(1, 'Zaidi', 'Ali', 'Fès'),(2, 'Mehdi', 'Omar', 'Casablanca'),(3,
'BenSlimane', 'Fatima', 'Marrakech'),(4, 'Alaoui', 'Amina', 'Rabat'),
(5, 'El Hashimi', 'Youssef', 'Tanger');
Séance 2
Ajout des produits
INSERT INTO Produit (ID_Produit, Nom_Produit, Prix) VALUES
(1, 'Téléphone intelligent', 3500.00),(2, 'Ordinateur portable', 8000.00),(3,
'Montre connectée', 1200.00),(4, 'Tablette', 4500.00),(5, 'Écouteurs sans fil',
700.00);
Ajout des commandes
INSERT INTO Commande (ID_Commande, ID_Client, ID_Produit, Quantite,
DateCommande) VALUES
(1, 1, 1, 2, '2024-02-10'),(2, 1, 3, 1, '2024-03-01'),(3, 2, 2, 1, '2024-02-
15'),(4, 3, 4, 1, '2024-01-20'),(5, 4, 5, 3, '2024-02-28'),(6, 5, 1, 1,
'2024-03-05'),(7, 5, 3, 2, '2024-03-10');
3. Création des Vues et Exploitation des Données
a) Vue cltSomme– Total des Achats par Client
CREATE VIEW cltSomme AS
SELECT [Link], [Link], SUM(Prix * Quantite) AS total
FROM Client c
JOIN Commande cmd ON c.ID_Client = cmd.ID_Client
JOIN Produit p ON cmd.ID_Produit = p.ID_Produit
GROUP BY [Link], [Link]
HAVING SUM(Prix * Quantite) > 5000;
b) Vue totalUnite– Nombre Total d'Unités Vendues par Produit
CREATE VIEW totalUnite AS
SELECT p.ID_Produit, p.Nom_Produit, SUM([Link]) AS unite
FROM Produit p
JOIN Commande cmd ON p.ID_Produit = cmd.ID_Produit
GROUP BY p.ID_Produit, p.Nom_Produit;
Séance 2
c) Vue cmdClient– Liste des Commandes par Client
CREATE VIEW cmdClient AS
SELECT [Link], [Link], cmd.ID_Commande, p.Nom_Produit,
[Link]
FROM Client c
JOIN Commande cmd ON c.ID_Client = cmd.ID_Client
JOIN Produit p ON cmd.ID_Produit = p.ID_Produit;
d) Vue prixTot– Montant Total Dépensé par Client et Produit
CREATE VIEW prixTot AS
SELECT [Link], [Link], p.Nom_Produit, [Link], ([Link] *
[Link]) AS prix_total FROM Client c
JOIN Commande cmd ON c.ID_Client = cmd.ID_Client
JOIN Produit p ON cmd.ID_Produit = p.ID_Produit;
e) Vue OP_cmd– Clients ayant acheté un ordinateur portable
CREATE VIEW OP_cmd AS
SELECT DISTINCT [Link], [Link] FROM Client c
JOIN Commande cmd ON c.ID_Client = cmd.ID_Client
JOIN Produit p ON cmd.ID_Produit = p.ID_Produit
WHERE p.Nom_Produit = 'Ordinateur portable';
Séance 2
f) Vue smVentes– Chiffre d'Affaires par Ville
CREATE VIEW smVentes AS
SELECT [Link], SUM(Prix * Quantite) AS total
FROM Client c
JOIN Commande cmd ON c.ID_Client = cmd.ID_Client
JOIN Produit p ON cmd.ID_Produit = p.ID_Produit
GROUP BY [Link];
Afficher le contenu des vues
SELECT * FROM cltSomme;
SELECT * FROM totalUnite;
SELECT * FROM cmdClient;
SELECT * FROM prixTot;
SELECT * FROM OP_cmd;
SELECT * FROM smVentes;