SQL Academy · Lektion

Almindelige views: Logisk genbrug

Opret views, der indkapsler komplekse forespørgsler, forenkler rapporter og giver læseadgang til et udsnit af kolonnerne.

Lektion 1 af 413 trin

Almindelige views: Logisk genbrug er en gratis SQL Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i SQL Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. SQL Academy-kurset indeholder 4 lektioner i alt.

Hvad er et view

Et view er en gemt SELECT. Hver gang du forespørger i viewet, køres den underliggende SELECT. Det er som en navngiven forespørgsel, du kan lave JOINs, filtrere og aggregere over.

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

Brug af et view

Forespørg i det som i enhver tabel:

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

Views gemmes ikke

View-definitionen gemmes, ikke resultatet. Ved hver forespørgsel udvider PostgreSQL viewet og kører den underliggende SELECT. De samme overvejelser om forespørgselsplanen gælder.

Hvorfor bruge views

  • Genbrug — definér en kompleks forespørgsel én gang
  • Abstraktion — skjul implementeringen (JOIN af 3 tabeller → "active_users")
  • Sikkerhed — giv SELECT på viewet uden at eksponere grundtabellerne
  • Kompatibilitet — bevar gamle forespørgselsformer efter ændringer i skemaet

CREATE OR REPLACE

Opdatér et view på stedet — men kun hvis kolonnetyper og rækkefølge stemmer overens:

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.

Views med JOINs og aggregater

Et almindeligt tilfælde er en opsummering pr. bruger:

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;

Opdaterbare views

Simple views (én tabel, ingen aggregater og ingen DISTINCT) er opdaterbare — du kan udføre INSERT/UPDATE/DELETE gennem dem. PostgreSQL opdaterer dem automatisk, når det er muligt.

Skemakvalificerede views

Placér hjælpeviews i et dedikeret skema:

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;

Views og rettigheder

Som standard kører et view med den forespørgende brugers rettigheder — brugeren skal stadig have rettigheder på grundtabellerne. Hvis en bruger med få rettigheder skal kunne forespørge i en følsom tabel, skal du i stedet bruge SECURITY DEFINER-funktioner.

Overvejelser om ydeevne

Planlæggeren udvider views og anvender sine sædvanlige optimeringer. Nogle gange blokerer et views GROUP BY for nedskubning af prædikater — opdel det, eller skriv det om, hvis EXPLAIN viser et problem.

View-afhængigheder

Det er ikke muligt at slette en grundtabel, hvis et view afhænger af den. Brug kun DROP TABLE ... CASCADE, når det er tilsigtet. Vis de afhængige objekter:

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

Opsamling

Views er genbrugelige SELECT-forespørgsler.

  • Definér én gang, forespørg mange gange
  • Abstraktion og sikkerhed
  • Opdaterbare, når de er simple
  • Køres igen ved hver forespørgsel — ingen indbygget caching

Hurtigt tjek

Gemmes resultatet, når du forespørger i et view?

Gratis at komme i gang

Lær SQL med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
46
Lektioner
183

Ofte stillede spørgsmål

Er lektionen “Almindelige views: Logisk genbrug” gratis?

Ja — hele teksten til “Almindelige views: Logisk genbrug” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af SQL Academy-kurset, skal du opgradere til CoddyKit PRO. SQL Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Almindelige views: Logisk genbrug”?

Opret views, der indkapsler komplekse forespørgsler, forenkler rapporter og giver læseadgang til et udsnit af kolonnerne. Du øver dig i SQL Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på SQL Academy?

Der kræves ingen tidligere erfaring. SQL Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Almindelige views: Logisk genbrug”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne SQL Academy-lektion?

Ja. Alle SQL Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Almindelige views: Logisk genbrug
  2. Opdaterbare views og INSTEAD OF-triggers
  3. Materialiserede views og REFRESH-strategier
  4. Hvornår skal De præaggregere
← Tilbage til SQL Academy