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 ;