PostgreSQL Opret visning med eksempel

โšก Smart opsummering

PostgreSQL Visninger er pseudotabeller, der er bygget ud fra en gemt SELECT-forespรธrgsel, hvilket giver dig mulighed for at pakke komplekse eller ofte brugte forespรธrgsler ind bag et enkelt navn, som du kan lรฆse, opdatere eller slette som en almindelig tabel.

  • ๐Ÿ—‚๏ธ Pseudo-tabel: En visning gemmer en forespรธrgsel, ikke data, men du Vร†LGER den ligesom en tabel.
  • ๐Ÿ› ๏ธ Skab: CREATE VIEW navngiver en SELECT-forespรธrgsel, selv pรฅ tvรฆrs af flere basistabeller, for nem genbrug.
  • โ™ป๏ธ Erstatte: OPRET ELLER ERSTAT VISNING รฆndrer en visning uden at slippe denping den.
  • ๐Ÿ—‘๏ธ Drop: DROP VIEW fjerner en visning, og IF EXISTS undgรฅr en fejl.
  • ๐Ÿค– AI-hjรฆlp: AI-assistenter genererer visningsdefinitioner og foreslรฅr, hvilke forespรธrgsler der skal ombrydes.

PostgreSQL Opret visning

Hvad er PostgreSQL Udsigt?

In PostgreSQL, en udsigt er en pseudo-tabel. Det betyder, at en udsigt ikke er et rigtigt bord. Vi kan dog Vร†LGE den som en almindelig tabel. En visning kan have alle eller nogle af tabelkolonnerne. En visning kan ogsรฅ vรฆre en reprรฆsentation af mere end รฉn tabel.

Tabellerne kaldes basistabeller. Nรฅr du opretter en visning, skal du blot oprette en forespรธrgsel og derefter give den et navn, hvilket gรธr den til et nyttigt vรฆrktรธj til ombrydning.ping komplekse og almindeligt anvendte forespรธrgsler.

Oprettelse af PostgreSQL Views

At oprette en PostgreSQL view, bruger vi CREATE VIEW-sรฆtningen. Her er syntaksen for denne erklรฆring:

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

Parameteren OR REPLACE erstatter visningen, hvis den allerede eksisterer. Hvis den udelades, og visningen allerede eksisterer, vil der blive returneret en fejl.

View-name-parameteren er navnet pรฅ den visning, du skal oprette.

WHERE-betingelsen(erne) er valgfri, og de skal vรฆre opfyldt, for at en post kan fรธjes til visningen.

Overvej pristabellen nedenfor:

Pris:

Oprettelse af PostgreSQL Views

Lad os skabe en visning fra ovenstรฅende tabel:

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

Ovenstรฅende kommando vil oprette en visning baseret pรฅ SELECT erklรฆring. Kun de poster, hvor prisen er stรธrre end 200, bliver tilfรธjet visningen. Udsigten har fรฅet navnet Price_View. Lad os forespรธrge det for at se dets indhold:

SELECT *
FROM Price_View;

Dette returnerer fรธlgende:

Oprettelse af PostgreSQL Views

Selvom basistabellen har 4 poster, blev der kun tilfรธjet 2 til visningen.

Her kan vi kun tilfรธje รฉn kolonne til visningen. Lad os oprette en visning, der kun indeholder รฉn kolonne fra pristabellen:

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

Visningen har fรฅet navnet Price_View2 og inkluderer kun priskolonnen i tabellen Pris. Lad os forespรธrge i visningen for at se dens indhold:

SELECT *
FROM Price_View2;

Dette returnerer fรธlgende:

Oprettelse af PostgreSQL Views

ร†ndring PostgreSQL Views

Definitionen af โ€‹โ€‹en visning kan รฆndres uden at skulle droppe den. Dette gรธres ved hjรฆlp af CREATE OR REPLACE VIEW-sรฆtningen.

Lad os demonstrere dette ved at opdatere visningen med navnet Price_View2.

Pris_visning2:

ร†ndring PostgreSQL Views

Bogtabellen er som fรธlger:

Bestil:

ร†ndring PostgreSQL Views

Pristabellen er som fรธlger:

Pris:

ร†ndring PostgreSQL Views

Fรธlgende forespรธrgsel hjรฆlper os med at opdatere 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;

Lad os nu forespรธrge i visningen for at se dens indhold:

ร†ndring PostgreSQL Views

Visningen er blevet รฆndret, og nu har vi to kolonner fra to forskellige tabeller. Dette er opnรฅet ved hjรฆlp af en JOIN-erklรฆring.

Sletning PostgreSQL Views

Nรฅr som helst du har brug for at slette en PostgreSQL view, kan du bruge DROP VIEW-sรฆtningen. Her er syntaksen for sรฆtningen:

DROP VIEW [IF EXISTS] view-name;

Parameteren view-name er navnet pรฅ den view, der skal slettes.

I denne syntaks er IF EXISTS valgfri. Hvis du ikke angiver det og forsรธger at slette en visning, der ikke findes, fรฅr du en fejl.

For at droppe visningen med navnet Price_View2 kan vi for eksempel kรธre fรธlgende sรฆtning:

DROP VIEW Price_View2;

Visningen vil blive slettet.

Bruger pgAdmin

Lad os nu se, hvordan disse handlinger kan udfรธres ved hjรฆlp af pgAdmin.

Oprettelse af PostgreSQL Views

For at opnรฅ det samme gennem pgAdmin, gรธr dette:

Trin 1) Log ind pรฅ din pgAdmin-konto.

Trin 2)

  • Fra navigationslinjen til venstre - Klik pรฅ Databaser.
  • Klik pรฅ Demo.

Oprettelse af PostgreSQL Visninger ved hjรฆlp af pgAdmin

Trin 3) Indtast forespรธrgslen i forespรธrgselseditoren:

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

Trin 4) Klik pรฅ knappen Udfรธr.

Oprettelse af PostgreSQL Visninger ved hjรฆlp af pgAdmin

Trin 5) For at se indholdet af visningen skal du gรธre fรธlgende:

  • Indtast fรธlgende kommando i forespรธrgselseditoren:
SELECT *
FROM Price_View;
  • Klik pรฅ knappen Udfรธr.

Oprettelse af PostgreSQL Visninger ved hjรฆlp af pgAdmin

Dette vil returnere fรธlgende:

Oprettelse af PostgreSQL Visninger ved hjรฆlp af pgAdmin

For at oprette visningen Price_View2 skal du gรธre fรธlgende:

Trin 1) Indtast fรธlgende forespรธrgsel i forespรธrgselseditoren:

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

Trin 2) Klik pรฅ knappen Udfรธr.

Oprettelse af PostgreSQL Visninger ved hjรฆlp af pgAdmin

Trin 3) Gรธr fรธlgende for at se indholdet af visningen:

  • Indtast fรธlgende forespรธrgsel i forespรธrgselseditoren:
SELECT *
FROM Price_View2;
  • Klik pรฅ knappen Udfรธr.

Oprettelse af PostgreSQL Visninger ved hjรฆlp af pgAdmin

Dette vil returnere fรธlgende:

Oprettelse af PostgreSQL Visninger ved hjรฆlp af pgAdmin

ร†ndring PostgreSQL Views

For at opnรฅ det samme gennem pgAdmin, gรธr dette:

Trin 1) Log ind pรฅ din pgAdmin-konto.

Trin 2)

  • Fra navigationslinjen til venstre - Klik pรฅ Databaser.
  • Klik pรฅ Demo.

ร†ndring PostgreSQL Visninger ved hjรฆlp af pgAdmin

Trin 3) Indtast forespรธrgslen i forespรธrgselseditoren:

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

Trin 4) Klik pรฅ knappen Udfรธr.

ร†ndring PostgreSQL Visninger ved hjรฆlp af pgAdmin

Trin 5) Indtast fรธlgende forespรธrgsel i forespรธrgselseditoren:

SELECT *
FROM Price_View2;

Dette vil returnere fรธlgende:

ร†ndring PostgreSQL Visninger ved hjรฆlp af pgAdmin

Sletning PostgreSQL Views

For at opnรฅ det samme gennem pgAdmin, gรธr dette:

Trin 1) Log ind pรฅ din pgAdmin-konto.

Trin 2)

  • Fra navigationslinjen til venstre - Klik pรฅ Databaser.
  • Klik pรฅ Demo.

Sletning PostgreSQL Visninger ved hjรฆlp af pgAdmin

Trin 3) Indtast forespรธrgslen i forespรธrgselseditoren:

DROP VIEW Price_View2;

Trin 4) Klik pรฅ knappen Udfรธr.

Sletning PostgreSQL Visninger ved hjรฆlp af pgAdmin

Visningen vil blive slettet.

Download databasen brugt i denne vejledning

Ofte Stillede Spรธrgsmรฅl

En tabel lagrer fysisk data pรฅ disken. En visning lagrer kun en SELECT-forespรธrgsel, sรฅ nรฅr du forespรธrger pรฅ den, kรธres forespรธrgslen igen og aktuelle data returneres fra basistabellerne.

En materialiseret visning cacher et forespรธrgselsresultat pรฅ disken. Den lรฆser hurtigere end en almindelig visning, men krรฆver REFRESH MATERIALIZED VIEW for at vise nye data.

En standardvisning kรธrer sin forespรธrgsel hver gang og viser livedata. En materialiseret visning gemmer resultater pรฅ disken for at opnรฅ hastighed, men kan vรฆre forรฆldet, indtil den opdateres.

Nogle gange. En simpel visning med รฉn tabel uden aggregering kan automatisk opdateres, sรฅ INSERT, UPDATE og DELETE fungerer direkte. Komplekse visninger har brug for I STEDET FOR triggere.

Forespรธrg kataloget: SELECT table_name FROM information_schema.views WHERE table_schema = 'public'. I pgAdmin kan du udvide Views-noden under et skema.

AI-assistenter omdanner en anmodning i et letforstรฅeligt sprog til en CREATE VIEW-sรฆtning, navngiver visningen og tilfรธjer de rigtige WHERE- og JOIN-klausuler, hvilket fremskynder forespรธrgsler, du genbruger ofte.

Ja. Indsรฆt en lang SELECT-tegnet, og en AI-assistent ombryder det i CREATE OR REPLACE VIEW, foreslรฅr et navn og markerer kolonner, der krรฆver aliasser, for at undgรฅ dubletter af navne.

En normal visning fremskynder ikke forespรธrgsler, fordi dens SELECT kรธrer hver gang. For hurtigere gentagne lรฆsninger skal du bruge en materialiseret visning, som gemmer resultaterne pรฅ disken, indtil de opdateres.

Opsummer dette indlรฆg med: