[05/06, 08 :40] ~Alex : -- Insérer des clients
INSERT INTO CLIENT (NCLI, NOM, ADRESSE, LOCALITE, CAT, COMPTE)
VALUES (1, ‘Jean Dupont’, ’10 Rue Neuve’, ‘Toulouse’, ‘C1’, 1000),
(2, ‘Marie Curie’, ’12 Avenue Soleil’, ‘Namur’, ‘C2’, 500),
(3, ‘Albert Einstein’, ‘5 Boulevard Lumière’, ‘Breda’, ‘C3’, -200) ;
Insérer des produits
INSERT INTO PRODUIT (NPRO, LIBELLE, PRIX, QSTOCK)
VALUES (101, ‘Sapin’, 50, 200),
(102, ‘Pointes en acier’, 10, 1000),
(103, ‘Marteau’, 25, 500) ;
Insérer des commandes
INSERT INTO COMMANDE (NCOM, NCLI, DATECOM)
VALUES (1, 1, ‘2025-06-01’),
(2, 2, ‘2025-06-02’) ;
Insérer des détails de commandes
INSERT INTO DETAIL (NCOM, NPRO, QCOM)
VALUES (1, 101, 10),
(1, 102, 20),
(2, 103, 5) ;
[05/06, 08 :58] ~Alex : a. Ajouter 5% à la valeur de COMPTE pour les
clients ayant un COMPTE > 500
UPDATE CLIENT
SET COMPTE = COMPTE * 1.05
WHERE COMPTE > 500 ;
b. Afficher le total, le minimum, la moyenne, et le maximum des comptes
SELECT
SUM(COMPTE) AS TotalCompte,
MIN(COMPTE) AS MinCompte,
AVG(COMPTE) AS AvgCompte,
MAX(COMPTE) AS MaxCompte
FROM CLIENT ;
c. Afficher les identifiants et les noms des clients de Toulouse
SELECT NCLI, NOM
FROM CLIENT
WHERE LOCALITE = ‘Toulouse’ ;
d. Afficher le nom, l’adresse et le compte des clients ayant un compte
négatif
SELECT NOM, ADRESSE, COMPTE
FROM CLIENT
WHERE COMPTE < 0 ;
e. Afficher les numéros des clients ayant passé au moins une commande
SELECT DISTINCT NCLI
FROM COMMANDE ;
f. Afficher les noms de clients appartenant à C1, C2, C3 mais pas dans
certaines localités
SELECT NOM
FROM CLIENT
WHERE CAT IN (‘C1’, ‘C2’, ‘C3’)
AND LOCALITE NOT IN (‘Toulouse’, ‘Namur’, ‘Breda’) ;
g. Afficher les numéros des clients commandant le produit ‘CS464’
SELECT DISTINCT C.NCLI
FROM COMMANDE C
JOIN DETAIL D ON C.NCOM = D.NCOM
WHERE D.NPRO = ‘CS464’ ;
h. Calculer le montant de chaque détail de commande
SELECT D.NCOM, D.NPRO, D.QCOM, P.PRIX, (D.QCOM * P.PRIX) AS Montant
FROM DETAIL D
JOIN PRODUIT P ON D.NPRO = P.NPRO ;