PostgreSQL Opprett visning med eksempel

โšก Smart oppsummering

PostgreSQL Visninger er pseudotabeller bygget fra en lagret SELECT-spรธrring, som lar deg pakke komplekse eller ofte brukte spรธrringer bak ett enkelt navn som du kan lese, oppdatere eller slette som en vanlig tabell.

  • ๐Ÿ—‚๏ธ Pseudo-tabell: En visning lagrer en spรธrring, ikke data, men du VELGER den som en tabell.
  • ๐Ÿ› ๏ธ Skape: CREATE VIEW navngir en SELECT-spรธrring, selv pรฅ tvers av flere basistabeller, for enkel gjenbruk.
  • โ™ป๏ธ Erstatte: OPPRETT ELLER ERSTATT VISNING endrer en visning uten รฅ slippe denping det.
  • ๐Ÿ—‘๏ธ Miste: DROP VIEW fjerner en visning, og IF EXISTS unngรฅr en feil.
  • ๐Ÿค– AI-hjelp: AI-assistenter genererer visningsdefinisjoner og foreslรฅr hvilke spรธrringer som skal pakkes inn.

PostgreSQL Lag visning

Hva er PostgreSQL Utsikt?

In PostgreSQL, en visning er en pseudo-tabell. Dette betyr at en visning ikke er en ekte tabell. Vi kan imidlertid VELGE den som en vanlig tabell. En visning kan ha alle eller noen av tabellkolonnene. En visning kan ogsรฅ vรฆre en representasjon av mer enn รฉn tabell.

Tabellene kalles basistabeller. Nรฅr du oppretter en visning, trenger du bare รฅ opprette en spรธrring og deretter gi den et navn, noe som gjรธr den til et nyttig verktรธy for bryting.ping komplekse og ofte brukte spรธrringer.

Opprette PostgreSQL Visninger

ร… opprette en PostgreSQL view, bruker vi CREATE VIEW-setningen. Her er syntaksen for denne uttalelsen:

CREATE [OR REPLACE] VIEW view-name AS
  SELECT column(s)
  FROM table(s)
  [WHERE condition(s)];

OR REPLACE-parameteren vil erstatte visningen hvis den allerede eksisterer. Hvis den utelates og visningen allerede eksisterer, vil en feil bli returnert.

View-name-parameteren er navnet pรฅ visningen du mรฅ opprette.

WHERE-betingelsen(e) er valgfrie, og de mรฅ vรฆre oppfylt for at en post skal legges til i visningen.

Vurder pristabellen nedenfor:

Pris:

Opprette PostgreSQL Visninger

La oss lage en visning fra tabellen ovenfor:

CREATE VIEW Price_View AS
  SELECT id, price
  FROM Price
  WHERE price > 200;

Kommandoen ovenfor vil opprette en visning basert pรฅ SELECT-setning. Kun postene der prisen er hรธyere enn 200 vil bli lagt til visningen. Utsikten har fรฅtt navnet Price_View. La oss spรธrre den for รฅ se innholdet:

SELECT *
FROM Price_View;

Dette returnerer fรธlgende:

Opprette PostgreSQL Visninger

Selv om basistabellen har 4 poster, ble bare 2 lagt til i visningen.

Her kan vi bare legge til รฉn kolonne i visningen. La oss opprette en visning som bare inkluderer รฉn kolonne fra pristabellen:

CREATE VIEW Price_View2 AS
  SELECT price
  FROM Price
  WHERE price > 200;

Visningen har fรฅtt navnet Price_View2 og inkluderer kun priskolonnen i Pristabellen. La oss spรธrre visningen for รฅ se innholdet:

SELECT *
FROM Price_View2;

Dette returnerer fรธlgende:

Opprette PostgreSQL Visninger

Endre PostgreSQL Visninger

Definisjonen av en visning kan endres uten รฅ mรฅtte droppe den. Dette gjรธres ved รฅ bruke CREATE OR REPLACE VIEW-setningen.

La oss demonstrere dette ved รฅ oppdatere visningen som heter Price_View2.

Pris_visning2:

Endre PostgreSQL Visninger

Boktabellen er som fรธlger:

Bok:

Endre PostgreSQL Visninger

Pristabellen er som fรธlger:

Pris:

Endre PostgreSQL Visninger

Fรธlgende spรธrring vil hjelpe oss med รฅ oppdatere visningen Price_View2:

CREATE or REPLACE VIEW Price_View2 AS
  SELECT price, name
  FROM Book
  INNER JOIN Price
  ON Book.id = Price.id
  WHERE price > 200;

La oss nรฅ spรธrre visningen for รฅ se innholdet:

Endre PostgreSQL Visninger

Visningen er endret, og nรฅ har vi to kolonner fra to forskjellige tabeller. Dette er oppnรฅdd ved hjelp av en JOIN-erklรฆring.

slette PostgreSQL Visninger

Nรฅr som helst du trenger รฅ slette en PostgreSQL visning, kan du bruke DROP VIEW-setningen. Her er syntaksen for setningen:

DROP VIEW [IF EXISTS] view-name;

Parameteren visningsnavn er navnet pรฅ visningen som skal slettes.

I denne syntaksen er IF EXISTS valgfritt. Hvis du ikke spesifiserer det og prรธver รฅ slette en visning som ikke finnes, vil du fรฅ en feil.

For รฅ droppe visningen som heter Price_View2, kan vi for eksempel kjรธre fรธlgende setning:

DROP VIEW Price_View2;

Visningen vil bli slettet.

Bruker pgAdmin

La oss nรฅ se hvordan disse handlingene kan utfรธres ved hjelp av pgAdmin.

Opprette PostgreSQL Visninger

For รฅ oppnรฅ det samme gjennom pgAdmin, gjรธr dette:

Trinn 1) Logg pรฅ pgAdmin-kontoen din.

Trinn 2)

  • Fra navigasjonslinjen til venstre klikker du pรฅ Databaser.
  • Klikk pรฅ Demo.

Opprette PostgreSQL Visninger ved hjelp av pgAdmin

Trinn 3) Skriv inn sรธket i spรธrringsredigeringsprogrammet:

CREATE VIEW Price_View AS
  SELECT id, price
  FROM Price
  WHERE price > 200;

Trinn 4) Klikk pรฅ Utfรธr-knappen.

Opprette PostgreSQL Visninger ved hjelp av pgAdmin

Trinn 5) Gjรธr fรธlgende for รฅ se innholdet i visningen:

  • Skriv inn fรธlgende kommando i spรธrringsredigeringsprogrammet:
SELECT *
FROM Price_View;
  • Klikk pรฅ Utfรธr-knappen.

Opprette PostgreSQL Visninger ved hjelp av pgAdmin

Dette vil returnere fรธlgende:

Opprette PostgreSQL Visninger ved hjelp av pgAdmin

For รฅ opprette visningen Price_View2, gjรธr fรธlgende:

Trinn 1) Skriv inn fรธlgende spรธrring i spรธrringsredigeringsprogrammet:

CREATE VIEW Price_View2 AS
  SELECT price
  FROM Price
  WHERE price > 200;

Trinn 2) Klikk pรฅ Utfรธr-knappen.

Opprette PostgreSQL Visninger ved hjelp av pgAdmin

Trinn 3) Gjรธr fรธlgende for รฅ se innholdet i visningen:

  • Skriv inn fรธlgende spรธrring i spรธrringsredigeringsprogrammet:
SELECT *
FROM Price_View2;
  • Klikk pรฅ Utfรธr-knappen.

Opprette PostgreSQL Visninger ved hjelp av pgAdmin

Dette vil returnere fรธlgende:

Opprette PostgreSQL Visninger ved hjelp av pgAdmin

Endre PostgreSQL Visninger

For รฅ oppnรฅ det samme gjennom pgAdmin, gjรธr dette:

Trinn 1) Logg pรฅ pgAdmin-kontoen din.

Trinn 2)

  • Fra navigasjonslinjen til venstre klikker du pรฅ Databaser.
  • Klikk pรฅ Demo.

Endre PostgreSQL Visninger ved hjelp av pgAdmin

Trinn 3) Skriv inn sรธket i spรธrringsredigeringsprogrammet:

CREATE or REPLACE VIEW Price_View2 AS
  SELECT price, name
  FROM Book
  INNER JOIN Price
  ON Book.id = Price.id
  WHERE price > 200;

Trinn 4) Klikk pรฅ Utfรธr-knappen.

Endre PostgreSQL Visninger ved hjelp av pgAdmin

Trinn 5) Skriv inn fรธlgende spรธrring i spรธrringsredigeringsprogrammet:

SELECT *
FROM Price_View2;

Dette vil returnere fรธlgende:

Endre PostgreSQL Visninger ved hjelp av pgAdmin

slette PostgreSQL Visninger

For รฅ oppnรฅ det samme gjennom pgAdmin, gjรธr dette:

Trinn 1) Logg pรฅ pgAdmin-kontoen din.

Trinn 2)

  • Fra navigasjonslinjen til venstre klikker du pรฅ Databaser.
  • Klikk pรฅ Demo.

slette PostgreSQL Visninger ved hjelp av pgAdmin

Trinn 3) Skriv inn sรธket i spรธrringsredigeringsprogrammet:

DROP VIEW Price_View2;

Trinn 4) Klikk pรฅ Utfรธr-knappen.

slette PostgreSQL Visninger ved hjelp av pgAdmin

Visningen vil bli slettet.

Last ned databasen som brukes i denne opplรฆringen

Spรธrsmรฅl og svar

En tabell lagrer fysisk data pรฅ disk. En visning lagrer bare en SELECT-spรธrring, sรฅ nรฅr du spรธr den pรฅ nytt, kjรธres spรธrringen pรฅ nytt og gjeldende data returneres fra basistabellene.

En materialisert visning mellomlagrer et spรธrreresultat pรฅ disken. Den leser raskere enn en vanlig visning, men trenger REFRESH MATERIALIZED VIEW for รฅ vise nye data.

En standardvisning kjรธrer spรธrringen sin hver gang, og viser sanntidsdata. En materialisert visning lagrer resultater pรฅ disk for hastighet, men kan vรฆre foreldet inntil den oppdateres.

Noen ganger. En enkel tabellvisning uten aggregering kan oppdateres automatisk, sรฅ INSERT, UPDATE og DELETE fungerer direkte. Komplekse visninger trenger ISTEDEN FOR utlรธsere.

Spรธr i katalogen: SELECT table_name FROM information_schema.views WHERE table_schema = 'public'. I pgAdmin kan du utvide Views-noden under et skjema.

AI-assistenter gjรธr en forespรธrsel i enkeltsprรฅk om til en CREATE VIEW-setning, navngir visningen og legger til de riktige WHERE- og JOIN-klausulene, noe som fremskynder spรธrringer du bruker ofte.

Ja. Lim inn en lang SELECT-kode, og en AI-assistent pakker den inn i CREATE OR REPLACE VIEW, foreslรฅr et navn og flagger kolonner som trenger aliaser for รฅ unngรฅ dupliserte navn.

En normal visning รธker ikke hastigheten pรฅ spรธrringene fordi SELECT-visningen kjรธrer hver gang. For raskere gjentatte lesninger, bruk en materialisert visning, som lagrer resultatene pรฅ disken til de oppdateres.

Oppsummer dette innlegget med: