select est en fait une sélection classique, comme nous en avons déjà écrite.
La liste des colonnes prend les colonnes du résultat de la requête et leur attribue les noms de la liste. Cette liste doit donc comporter autant d’éléments qu’il y a de colonnes dans le résultat de requête.
D’une façon générale, une vue est une table qui ne peut qu’être lue. Il existe en fait quelques cas dans lesquels on peut insérer ou modifier les éléments d’une vue. Ces cas sont définis très précisément dans les documentations du serveur que l’on utilise.
Une vue s'utilise ensuite exactement comme une table. Elle peut être utilisée comme argument d'un
select. À chaque fois qu'une requête est faite sur une vue, les requêtes qui ont servi à créer la vue sont exécutées.
La commande qui permet d'effacer une vue est la suivante.
Marins, une telle vue présenterait le nom du marin et sa commune de naissance. Dans ce cas l’identificateur de commune de la table
Marins sert de jointure, et est masqué à l'utilisateur.
group by et une fonction d'agrégation dans le critère de sélection.
v_Marins qui nous donne le nom de la commune de naissance de nos marins directement.
Exemple 72. Vue jointe
create view v_Marins (nom, prenom, ddnaissance, ddmort, commune)
as
select Marins.nom, prenom, ddnaissance, ddmort, Communes.nom
from Marins
join Communes on Marins.id_commune = Communes.id ;
Marins ou
Communes est bien sûr propagée automatiquement dans la vue.
Exemple 74. Vue groupée - 1
create view v_tonnage
as
select nom_bateau, sum(tonnage) as tonnage
from Bateaux left outer join Livraisons
on (Bateaux.id = Livraisons.id_bateau)
group by Bateaux.nom_bateau ;
Exemple 75. Vue groupée - 2
create view v_tonnage2 (nom_bateau, tonnage)
as
select nom_bateau, tonnage from v_tonnage where tonnage is not null
union
select nom_bateau, 0 from v_tonnage where tonnage is null ;