Une vue est une table virtuelle, ce qui veut dire que les données ne sont pas stockées dans une table de la base de données. On peut y rassembler des informations provenant de plusieurs tables.
On dit qu'une vue est représentation des données dans le but d'une exploitation visuelle. En général, on indiquera des valeurs calculées ou issues d'autres tables dans la vue. Les données présentes définies grâce à une clause select.
Voici la syntaxe de création d'une vue: create view nom_view as select...;
mysql> create view age_abattage as
select a.NUMOFFICIEL AS NUMOFFICIEL, (to_days(e.DATEVT)-to_days(a.DATNAI)) AS AGE_JOUR
from d_evts e,d_animal a
where (d.NUMOFFICIEL=a.NUMOFFICIEL) and (e.CODEVT=1001);
Dans l'exemple ci-dessu, ma requête permet de:
joindre deux tables d_animal, et d_evts que je renomme a et d pour la lisibilité, sur l'attribut NUMOFFICIEL
lister les numéros officiels des animaux
afficher pour chaque animal l'âge de leur mort en jours. J'utilise pour cela le mot-clé to_days et je fais la différence entre la date d'abattage (valeur pour DATEVT pour un CODEVT=1001) et la date de naissane (DATNAI)
Si je rajoute un animal à la table d_animal, rien ne changera dans ma vue. Par contre si pour cet animal je rajoute un événement de code 1001 (abattage) avec une date, alors ma vue sera automatiquement mise à jour.
Les vues peuvent être très pratiques pour des opérations que vous devrez fréquemment faire. Elles sont assez gourmandes en terme de mémoire, donc il faut les utiliser avec parcimonie.