16.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.

16.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)

16.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)

16.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;

16.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.

16.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.