88 lines
1.6 KiB
SQL
88 lines
1.6 KiB
SQL
--1 Ajouter une colonne intitulée “categorie_id” à la table contenant les commandes. Cette colonne contiendra une valeur numérique.
|
|
ALTER TABLE
|
|
commandes
|
|
ADD
|
|
categorie_id INT(10) UNSIGNED DEFAULT NULL
|
|
;
|
|
|
|
|
|
|
|
|
|
--2 Enregistrer la valeur de la catégorie, en suivant les règles suivantes (en une seule requête) :
|
|
UPDATE commandes
|
|
SET categorie_id =
|
|
CASE
|
|
WHEN
|
|
commande_cache_prix_total < 200
|
|
THEN 1
|
|
WHEN
|
|
commande_cache_prix_total BETWEEN 200 AND 500
|
|
THEN 2
|
|
WHEN
|
|
commande_cache_prix_total BETWEEN 500 AND 1000
|
|
THEN 3
|
|
ELSE 4
|
|
END
|
|
;
|
|
|
|
|
|
|
|
--3 Créer une table intitulée “categories” qui contiendra le descriptif de ces catégories.
|
|
CREATE TABLE categories (
|
|
categorie_id INT(10) UNSIGNED PRIMARY KEY,
|
|
categorie_description VARCHAR(255)
|
|
)
|
|
;
|
|
|
|
INSERT INTO
|
|
categories (
|
|
categorie_id,
|
|
categorie_description
|
|
)
|
|
VALUES
|
|
(1, 'Moins de 200€'),
|
|
(2, 'Entre 200€ et 500€'),
|
|
(3, 'Entre 500€ et 1.000€'),
|
|
(4, 'Supérieures à 1.000€')
|
|
;
|
|
|
|
|
|
--4 Créer la clé étrangère entre la table “categories” et la colonne “categorie_id” de la table “commandes”.
|
|
SELECT
|
|
FROM
|
|
INNER JOIN
|
|
ON
|
|
WHERE
|
|
GROUP BY
|
|
ORDER BY
|
|
LIMIT
|
|
;
|
|
|
|
|
|
|
|
--5 Insérer les 4 descriptifs de chaque catégorie au sein de la table précédemment créée.
|
|
SELECT
|
|
FROM
|
|
INNER JOIN
|
|
ON
|
|
WHERE
|
|
GROUP BY
|
|
ORDER BY
|
|
LIMIT
|
|
;
|
|
|
|
|
|
|
|
--6 Supprimer toutes les commandes (et les lignes des commandes) inférieures au 1er février 2019. Cela doit être effectué en 2 requêtes maximum.
|
|
SELECT
|
|
FROM
|
|
INNER JOIN
|
|
ON
|
|
WHERE
|
|
GROUP BY
|
|
ORDER BY
|
|
LIMIT
|
|
;
|
|
|
|
|