Combiner les données avec des opérations mathématiques
Jusqu'ici, rien de plus simple. Cependant, si l'on veut juste faire 3+6, pas besoin de MySQL, une calculette (ou un cerveau) suffit.
Après tout, dans une base de données, l'important, ce sont les données. Et, il est évidemment possible de faire des opérations
mathématiques (et bien d'autres choses) sur les données.
Modification de notre base de données
Mais avant de rentrer dans le vif du sujet, je vais vous demander d'ajouter quelque chose à notre base de données. En effet,
pour l'instant nous n'avons pas de données numériques, si ce n'est les différents id . Or, il n'est pas très intéressant (et ça peut
même être dangereux) de manipuler les id .
Par conséquent, nous allons ajouter une colonne prix à nos tables Espece et Race, qui contiendra donc le prix à payer pour
adopter un animal de telle espèce ou telle race. Cette colonne sera du type DECIMAL, avec deux chiffres après la virgule. Elle ne
pourra pas contenir de nombres négatifs, et sera donc également UNSIGNED.
Voici donc les commandes à exécuter :
Code : SQL
ALTER TABLE Race
ADD COLUMN prix DECIMAL(7,2) UNSIGNED;
ALTER TABLE Espece
ADD COLUMN prix DECIMAL(7,2) UNSIGNED;
-- Remplissage des colonnes "prix"
UPDATE Espece SET prix = 200 WHERE id = 1;
UPDATE Espece SET prix = 150 WHERE id = 2;
UPDATE Espece SET prix = 140 WHERE id = 3;
UPDATE Espece SET prix = 700 WHERE id = 4;
UPDATE Espece SET prix = 10 WHERE id = 5;
UPDATE Espece SET prix = 75 WHERE id = 6;
UPDATE Race SET prix = 450 WHERE id = 1;
UPDATE Race SET prix = 900 WHERE id = 2;
UPDATE Race SET prix = 950 WHERE id = 3;
UPDATE Race SET prix = 800 WHERE id = 4;
UPDATE Race SET prix = 700 WHERE id = 5;
UPDATE Race SET prix = 1200 WHERE id = 7;
UPDATE Race SET prix = 950 WHERE id = 8;
UPDATE Race SET prix = 600 WHERE id = 9;
Le prix de la race sera prioritaire sur le prix de l'espèce. Donc pour un Berger allemand, on ira chercher le prix dans la table Race,
tandis que pour un bâtard ou une tortue d'Hermann, on prendra le prix de la table Espece.
Opérations sur données sélectionnées
Exemple 1 : Imaginons que nous voulions savoir le prix à payer pour acheter 3 individus de la même espèce (sans considérer la
race). Facile, il suffit de multiplier le prix de chaque espèce par 3.
Code : SQL
SELECT nom_courant, prix*3 AS prix_trio
FROM Espece;
nom_courant
prix_trio
Chien
600.00
Chat
450.00
Tortue d'Hermann 420.00
Partie 3 : Fonctions : nombres, chaînes et agrégats
152/414
www.openclassrooms.com
Jusqu'ici, rien de plus simple. Cependant, si l'on veut juste faire 3+6, pas besoin de MySQL, une calculette (ou un cerveau) suffit.
Après tout, dans une base de données, l'important, ce sont les données. Et, il est évidemment possible de faire des opérations
mathématiques (et bien d'autres choses) sur les données.
Modification de notre base de données
Mais avant de rentrer dans le vif du sujet, je vais vous demander d'ajouter quelque chose à notre base de données. En effet,
pour l'instant nous n'avons pas de données numériques, si ce n'est les différents id . Or, il n'est pas très intéressant (et ça peut
même être dangereux) de manipuler les id .
Par conséquent, nous allons ajouter une colonne prix à nos tables Espece et Race, qui contiendra donc le prix à payer pour
adopter un animal de telle espèce ou telle race. Cette colonne sera du type DECIMAL, avec deux chiffres après la virgule. Elle ne
pourra pas contenir de nombres négatifs, et sera donc également UNSIGNED.
Voici donc les commandes à exécuter :
Code : SQL
ALTER TABLE Race
ADD COLUMN prix DECIMAL(7,2) UNSIGNED;
ALTER TABLE Espece
ADD COLUMN prix DECIMAL(7,2) UNSIGNED;
-- Remplissage des colonnes "prix"
UPDATE Espece SET prix = 200 WHERE id = 1;
UPDATE Espece SET prix = 150 WHERE id = 2;
UPDATE Espece SET prix = 140 WHERE id = 3;
UPDATE Espece SET prix = 700 WHERE id = 4;
UPDATE Espece SET prix = 10 WHERE id = 5;
UPDATE Espece SET prix = 75 WHERE id = 6;
UPDATE Race SET prix = 450 WHERE id = 1;
UPDATE Race SET prix = 900 WHERE id = 2;
UPDATE Race SET prix = 950 WHERE id = 3;
UPDATE Race SET prix = 800 WHERE id = 4;
UPDATE Race SET prix = 700 WHERE id = 5;
UPDATE Race SET prix = 1200 WHERE id = 7;
UPDATE Race SET prix = 950 WHERE id = 8;
UPDATE Race SET prix = 600 WHERE id = 9;
Le prix de la race sera prioritaire sur le prix de l'espèce. Donc pour un Berger allemand, on ira chercher le prix dans la table Race,
tandis que pour un bâtard ou une tortue d'Hermann, on prendra le prix de la table Espece.
Opérations sur données sélectionnées
Exemple 1 : Imaginons que nous voulions savoir le prix à payer pour acheter 3 individus de la même espèce (sans considérer la
race). Facile, il suffit de multiplier le prix de chaque espèce par 3.
Code : SQL
SELECT nom_courant, prix*3 AS prix_trio
FROM Espece;
nom_courant
prix_trio
Chien
600.00
Chat
450.00
Tortue d'Hermann 420.00
Partie 3 : Fonctions : nombres, chaînes et agrégats
152/414
www.openclassrooms.com
