Correction Exercice précédent
Pour créer la table aliments avec les champs nom, poids_moyen, calories et couleur, vous pouvez utiliser la commande CREATE TABLE avec la syntaxe suivante:
CREATE TABLE aliments (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(255) NOT NULL,
poids_moyen FLOAT NOT NULL,
calories INT NOT NULL,
couleur INT NOT NULL
);
Pour créer la table type_d'aliment avec le champ nom, vous pouvez utiliser la commande CREATE TABLE avec la syntaxe suivante:
CREATE TABLE type_d'aliment (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(255) NOT NULL
);
Pour créer la table couleur avec les champs nom et hexadecimal_rvb, vous pouvez utiliser la commande CREATE TABLE avec la syntaxe suivante:
CREATE TABLE couleur (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(255) NOT NULL,
hexadecimal_rvb CHAR(7) NOT NULL
);
Pour créer des relations entre ces tables, vous pouvez ajouter des clés étrangères aux tables appropriées. Par exemple, pour lier la table aliments à la table type_d'aliment, vous pouvez ajouter une colonne type_id à la table aliments et définir une contrainte de clé étrangère entre cette colonne et la colonne id de la table type_d'aliment. Vous pouvez utiliser les commandes suivantes pour effectuer ces modifications:
ALTER TABLE aliments ADD type_id INT;
ALTER TABLE aliments ADD FOREIGN KEY (type_id) REFERENCES type_d'aliment(id);
Pour remplir la table couleurs avec un grand nombre de couleurs, vous pouvez utiliser la commande INSERT INTO pour insérer des données dans la table. Par exemple, pour insérer une couleur avec le nom “rouge” et la valeur hexadécimale RVB “#FF0000”, vous pouvez utiliser la commande suivante:
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('rouge', '#FF0000');
Vous pouvez répéter cette commande pour chaque couleur que vous souhaitez ajouter à la table.
Pour remplir la table type_aliment avec un grand nombre de types d’aliments, vous pouvez utiliser la même méthode en utilisant la commande INSERT INTO. Par exemple, pour insérer un type d’aliment avec le nom “fruit”, vous pouvez utiliser la commande suivante:
INSERT INTO type_aliment (nom) VALUES ('fruit');
Si vous avez une table fruits avec les champs nom, poids_moyen et calories, et que vous souhaitez copier les données de cette table dans votre table aliments, vous pouvez utiliser la commande INSERT INTO ... SELECT pour insérer les données de la table fruits dans la table aliments. Voici un exemple de commande que vous pouvez utiliser:
INSERT INTO aliments (nom, poids_moyen, calories)
SELECT nom, poids_moyen, calories
FROM fruits;
Cette commande copiera toutes les données de la table fruits dans la table aliments
Voici les requêtes MySQL que vous pouvez utiliser pour insérer les données que vous avez fournies dans la table couleurs:
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('Noir', '#000000');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('blanc', '#FFFFFF');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('Rouge', '#FF0000');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('Citron vert', '#00FF00');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('Bleu', '#0000FF');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('Jaune', '#FFFF00');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('Cyan / Aqua', '#00FFFF');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('Magenta / Fuchsia', '#FF00FF');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('argent', '#C0C0C0');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('gris', '#808080');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('Bordeaux', '#800000');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('olive', '#808000');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('vert', '#008000');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('Violet', '#800080');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('Sarcelle', '#008080');
INSERT INTO couleurs (nom, hexadecimal_rvb) VALUES ('Marine', '#000080');
Vous pouvez copier et coller ces requêtes dans votre interface MySQL pour insérer les données dans la table couleurs.
Pour mettre à jour la colonne type_id de la table aliments en fonction des données contenues dans les tables fruits et legumes, vous pouvez utiliser une requête UPDATE avec une sous-requête SELECT. Voici un exemple de requête que vous pouvez utiliser:
UPDATE aliments
SET type_id = (
SELECT id
FROM type_aliment
WHERE nom = 'fruit'
)
WHERE nom IN (
SELECT nom
FROM fruits
);
Cette requête mettra à jour la colonne type_id de toutes les lignes de la table aliments dont le nom est présent dans la table fruits, en utilisant l’id du type d’aliment correspondant au nom “fruit” dans la table type_aliment.
Vous pouvez utiliser une requête similaire pour mettre à jour les lignes correspondant aux légumes en utilisant le nom “legume” dans la sous-requête SELECT.