Ensuite, on fait une sélection sur cette vue :
Code : SQL
SELECT *
FROM V_Animal_details
WHERE MONTH(date_naissance) = 6;
Si c'est l'algorithme MERGE qui est utilisé, MySQL va fusionner :
la requête définissant la vue :
Code : SQL
SELECT Animal.id, Animal.sexe, Animal.date_naissance,
Animal.nom, Animal.commentaires,
Animal.espece_id, Animal.race_id, Animal.mere_id,
Animal.pere_id, Animal.disponible,
Espece.nom_courant AS espece_nom, Race.nom AS race_nom
FROM Animal
INNER JOIN Espece ON Animal.espece_id = Espece.id
LEFT JOIN Race ON Animal.race_id = Race.id;
les clauses de la requête de sélection :
Code : SQL
WHERE MONTH(date_naissance) = 6;
Au final, faire cette requête sur la vue provoquera l'exécution de la requête suivante :
Code : SQL
SELECT Animal.id, Animal.sexe, Animal.date_naissance, Animal.nom,
Animal.commentaires,
Animal.espece_id, Animal.race_id, Animal.mere_id,
Animal.pere_id, Animal.disponible,
Espece.nom_courant AS espece_nom, Race.nom AS race_nom
FROM Animal
INNER JOIN Espece ON Animal.espece_id = Espece.id
LEFT JOIN Race ON Animal.race_id = Race.id
WHERE MONTH(date_naissance) = 6;
Exemple 2
Si l'on exécute la requête suivante sur la vue V_Chien, et que l'algorithme MERGE est utilisé :
Code : SQL
SELECT nom, date_naissance
FROM V_Chien
WHERE pere_id IS NOT NULL;
Partie 6 : Au-delà des tables classiques : vues, tables temporaires et vues matérialisées
343/414
www.openclassrooms.com
Précédent

- 343/413

Suivant