15.5. Lesson: Weergaven
Wanneer u een query schrijft, spendeert u veel tijd en moeite om die te formuleren. Met weergaven kunt u de definitie van een query in SQL opslaan in een opnieuw te gebruiken ‘virtuele tabel’.
Het doel voor deze les: Een query al een weergave op te slaan.
15.5.1. Een weergave maken
U kunt een weergave net zo behandelen als een tabel, maar de gegevens ervan vinden hun oorsprong in een query. Laten we, gebaseerd op bovenstaande, een eenvoudige weergave maken:
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;
Zoals u kunt zien is het enige dat veranderd is het gedeelte create view roads_count_v as aan het begin. We kunnen nu gegevens uit die weergave selecteren:
select * from roads_count_v;
Resultaat:
count | name
-------+-------------
1 | Main Road
2 | High street
1 | Low Street
(3 rows)
15.5.2. Een weergave aanpassen
Een weergave staat niet vast en bevat geen ‘echte gegevens’. Dit betekent dat u hem eenvoudig kunt wijzigen zonder dat dat enige impact heeft op de gegevens in uw database:
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;
(Dit voorbeeld toont ook de best practice conventie voor het gebruiken van UPPER CASE voor alle sleutelwoorden van SQL.)
U zult zien dat we een clausule ORDER BY hebben toegevoegd zodat de rijen van onze weergave netjes zijn gesorteerd:
select * from roads_count_v;
count | name
-------+-------------
2 | High street
1 | Low Street
1 | Main Road
(3 rows)
15.5.3. Een weergave verwijderen
Als u een weergave niet langer nodig heeft, kunt u die op deze manier verwijderen:
drop view roads_count_v;
15.5.4. In Conclusion
Met behulp van weergave kunt u een query opslaan en toegang krijgen tot de resultaten daravan, als was het een tabel.
15.5.5. What’s Next?
Soms, bij het wijzigen van gegevens, wilt u dat uw wijzigingen ook ergens anders in de database effect hebben. De volgende les zal u tonen doe dat te doen.