Important
La traduction est le fruit d’un effort communautaire auquel vous pouvez vous joindre. Cette page est actuellement traduite à 88.89%.
15.5. Leçon : Vues
Lorsque vous créez une requête, vous devez fournir un effort non négligeable pour la formuler. Avec les vues, vous pouvez sauvegarder votre définition dans une requête SQL sous la forme d’une “table virtuelle” réutilisable.
Objectif de cette leçon : Sauvegarder des requêtes en vues.
15.5.1. Créer une vue
Vous pouvez considérer la vue comme une table mais ses données sont issues d’une requête. Faisons un exemple simple:
create view roads_count_v as
select count(people.name), streets.name
from people, streets where people.street_id=streets.id
group by people.street_id, streets.name;
As you can see the only change is the create view roads_count_v as part
at the beginning. We can now select data from that view:
select * from roads_count_v;
Résultat :
count | name
-------+-------------
1 | Main Road
2 | High street
1 | Low Street
(3 rows)
15.5.2. Modifier une vue
Une vue n’est pas fixe et elle ne contient aucune donnée réelle. Cela signifie que vous pouvez facilement la modifier sans impacter les données de votre base de données:
CREATE OR REPLACE VIEW roads_count_v AS
SELECT count(people.name), streets.name
FROM people, streets WHERE people.street_id=streets.id
GROUP BY people.street_id, streets.name
ORDER BY streets.name;
(Cet exemple montre également la convention de bonne pratique d’utiliser les caractères MAJUSCULES pour les mot-clefs du SQL.)
You will see that we have added an ORDER BY clause so that our view rows
are nicely sorted:
select * from roads_count_v;
count | name
-------+-------------
2 | High street
1 | Low Street
1 | Main Road
(3 rows)
15.5.3. Supprimer une vue
Si vous n’avez plus besoin de la vue, vous pouvez la supprimer de cette manière:
drop view roads_count_v;
15.5.4. Conclusion
En utilisant des vues, vous pouvez sauvegarder une requête et accéder à ses résultats comme s’il s’agissait d’une table.
15.5.5. La suite ?
Parfois, lorsque vous changez une donnée, vous voulez que ces modifications entraînent des effets ailleurs dans la base de données. La prochaine leçon nous permettra de voir comment on peut y parvenir.