SQL Academy · Les

Eenvoudige views: logisch hergebruik

Maak views om complexe query's af te schermen, rapporten te vereenvoudigen en leestoegang tot een subset van kolommen te geven.

Les 1 van 413 stappen

Eenvoudige views: logisch hergebruik is een gratis SQL Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject SQL Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus SQL Academy bevat in totaal 4 lessen.

Wat is een weergave

Een weergave is een opgeslagen SELECT. Elke keer dat je de weergave bevraagt, wordt de onderliggende SELECT uitgevoerd. Het is een benoemde query waarop je JOINs kunt uitvoeren, kunt filteren en kunt aggregeren.

CREATE VIEW active_users AS
  SELECT id, email, full_name
  FROM users
  WHERE deleted_at IS NULL;

Een weergave gebruiken

Bevraag de weergave zoals elke tabel:

SELECT COUNT(*) FROM active_users;
SELECT * FROM active_users WHERE email LIKE '%@gmail.com';

Weergaven worden niet opgeslagen

De definitie van de weergave wordt opgeslagen, niet het resultaat. Elke query vouwt de weergave uit en voert de onderliggende SELECT uit. Dezelfde aandachtspunten voor het queryplan gelden.

Waarom weergaven

  • Herbruikbaarheid — definieer één keer een complexe query
  • Abstractie — verberg de implementatie (3 tabellen koppelen → "active_users")
  • Beveiliging — verleen SELECT op de weergave zonder de basistabellen bloot te leggen
  • Compatibiliteit — laat oude queryvormen werken na wijzigingen in het schema

CREATE OR REPLACE

Werk een weergave op zijn plaats bij — maar alleen als kolomtypen en -volgorde overeenkomen:

CREATE OR REPLACE VIEW active_users AS
  SELECT id, email, full_name, last_login
  FROM users
  WHERE deleted_at IS NULL;

-- ERROR if columns conflict; DROP VIEW + CREATE VIEW instead.

Weergaven met JOINs en aggregaties

Veelvoorkomend geval: totalen per gebruiker samenvoegen:

CREATE VIEW user_stats AS
SELECT u.id, u.email,
       COUNT(o.id) AS order_count,
       COALESCE(SUM(o.total), 0) AS revenue
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id, u.email;

Bijwerkbare weergaven

Eenvoudige weergaven (één tabel, geen aggregaat en geen DISTINCT) zijn bijwerkbaar — je kunt INSERT/UPDATE/DELETE via de weergave uitvoeren. PostgreSQL werkt ze waar mogelijk automatisch bij.

Schema-gekwalificeerde weergaven

Zet hulpprogrammaweergaven in een speciaal schema:

CREATE SCHEMA api;
CREATE VIEW api.users_public AS
  SELECT id, email, full_name FROM users WHERE deleted_at IS NULL;

GRANT SELECT ON api.users_public TO app_reader;

Rechten voor weergaven

Standaard wordt een weergave uitgevoerd met de bevoegdheden van de gebruiker die de query uitvoert — die gebruiker heeft nog steeds rechten op basistabellen nodig. Gebruik functies met SECURITY DEFINER om een gebruiker met weinig rechten een gevoelige tabel te laten bevragen.

Prestatieoverwegingen

De queryplanner vouwt weergaven uit en past de gebruikelijke optimalisaties toe. Soms blokkeert de GROUP BY van een weergave het doorschuiven van predicaten — splits de query op of herschrijf deze als EXPLAIN een probleem laat zien.

Afhankelijkheden van weergaven

Het verwijderen van een basistabel wordt geblokkeerd als een weergave ervan afhankelijk is. Gebruik DROP TABLE ... CASCADE alleen als dat echt de bedoeling is. Bekijk de afhankelijke objecten:

SELECT * FROM pg_depend
WHERE refobjid = 'users'::REGCLASS;

Samenvatting

Weergaven zijn herbruikbare SELECTs.

  • Eén keer definiëren, vaak bevragen
  • Abstractie en beveiliging
  • Bijwerkbaar als ze eenvoudig zijn
  • Bij elke query opnieuw uitgevoerd — geen ingebouwde caching

Korte controle

Wordt het resultaat opgeslagen wanneer je een weergave bevraagt?

Gratis beginnen

Leer SQL met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
46
Lessen
183

Veelgestelde vragen

Is de les “Eenvoudige views: logisch hergebruik” gratis?

Ja — de volledige tekst van “Eenvoudige views: logisch hergebruik” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus SQL Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus SQL Academy bevat in totaal 4 lessen.

Wat leer ik in “Eenvoudige views: logisch hergebruik”?

Maak views om complexe query's af te schermen, rapporten te vereenvoudigen en leestoegang tot een subset van kolommen te geven. Je oefent met SQL Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met SQL Academy te beginnen?

Ervaring vooraf is niet nodig. SQL Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Eenvoudige views: logisch hergebruik”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over SQL Academy?

Ja. Elke les over SQL Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Eenvoudige views: logisch hergebruik
  2. Bijwerkbare views en INSTEAD OF-triggers
  3. Gematerialiseerde views en REFRESH-strategieën
  4. Wanneer vooraf aggregeren?
← Terug naar SQL Academy