PostgreSQL Skapa vy med exempel

⚡ Smart sammanfattning

PostgreSQL Vyer är pseudotabeller som byggs från en lagrad SELECT-fråga, vilket låter dig radbryta komplexa eller ofta använda frågor bakom ett enda namn som du kan läsa, uppdatera eller ta bort som en vanlig tabell.

  • 🗂️ Pseudotabel: En vy lagrar en fråga, inte data, men du VÄLJER den som en tabell.
  • 🛠️ Skapa: CREATE VIEW namnger en SELECT-fråga, även över flera bastabeller, för enkel återanvändning.
  • ♻️ Ersätt: SKAPA ELLER ERSÄTT VY ändrar en vy utan att släppa denping det.
  • 🗑️ Släppa: DROP VIEW tar bort en vy, och IF EXISTS undviker ett fel.
  • 🤖 AI-hjälp: AI-assistenter genererar vydefinitioner och föreslår vilka frågor som ska radbrytas.

PostgreSQL Skapa vy

Vad är PostgreSQL Se?

In PostgreSQL, en vy är en pseudotabell. Det betyder att en vy inte är ett riktigt bord. Men vi kan VÄLJA den som en vanlig tabell. En vy kan ha alla eller några av tabellkolumnerna. En vy kan också vara en representation av mer än en tabell.

Tabellerna kallas bastabeller. När du skapar en vy behöver du bara skapa en fråga och sedan ge den ett namn, vilket gör den till ett användbart verktyg för radbrytning.ping komplexa och vanligt förekommande frågor.

Skapa PostgreSQL Visningar

För att skapa en PostgreSQL view använder vi CREATE VIEW-satsen. Här är syntaxen för detta uttalande:

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

Parametern OR REPLACE kommer att ersätta vyn om den redan finns. Om den utelämnas och vyn redan finns kommer ett fel att returneras.

Parametern view-name är namnet på vyn som du behöver skapa.

WHERE-villkoren är valfria och måste vara uppfyllda för att en post ska kunna läggas till i vyn.

Tänk på pristabellen nedan:

Pris:

Skapa PostgreSQL Visningar

Låt oss skapa en vy från tabellen ovan:

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

Kommandot ovan kommer att skapa en vy baserad på SELECT-sats. Endast de poster där priset är högre än 200 kommer att läggas till i vyn. Vyn har fått namnet Price_View. Låt oss fråga den för att se dess innehåll:

SELECT *
FROM Price_View;

Detta returnerar följande:

Skapa PostgreSQL Visningar

Även om bastabellen har 4 poster lades endast 2 till i vyn.

Här kan vi bara lägga till en kolumn i vyn. Låt oss skapa en vy som bara innehåller en kolumn från pristabellen:

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

Vyn har fått namnet Price_View2 och inkluderar endast priskolumnen i pristabellen. Låt oss fråga vyn för att se dess innehåll:

SELECT *
FROM Price_View2;

Detta returnerar följande:

Skapa PostgreSQL Visningar

Skiftande PostgreSQL Visningar

Definitionen av en vy kan ändras utan att behöva släppa den. Detta görs med hjälp av CREATE OR REPLACE VIEW-satsen.

Låt oss visa detta genom att uppdatera vyn som heter Price_View2.

Price_View2:

Skiftande PostgreSQL Visningar

Boktabellen är som följer:

Bok:

Skiftande PostgreSQL Visningar

Pristabellen är som följer:

Pris:

Skiftande PostgreSQL Visningar

Följande fråga hjälper oss att uppdatera vyn 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;

Låt oss nu fråga vyn för att se dess innehåll:

Skiftande PostgreSQL Visningar

Vyn har ändrats, och nu har vi två kolumner från två olika tabeller. Detta har uppnåtts med hjälp av en JOIN-sats.

Radera PostgreSQL Visningar

När du behöver ta bort en PostgreSQL I en vy kan du använda DROP VIEW-satsen. Här är syntaxen för satsen:

DROP VIEW [IF EXISTS] view-name;

Parametern view-name är namnet på vyn som ska raderas.

I den här syntaxen är IF EXISTS valfritt. Om du inte anger det och försöker ta bort en vy som inte finns får du ett felmeddelande.

För att till exempel ta bort vyn med namnet Price_View2 kan vi köra följande uttalande:

DROP VIEW Price_View2;

Vyn kommer att raderas.

Använder pgAdmin

Låt oss nu se hur dessa åtgärder kan utföras med pgAdmin.

Skapa PostgreSQL Visningar

För att åstadkomma samma sak genom pgAdmin, gör så här:

Steg 1) Logga in på ditt pgAdmin-konto.

Steg 2)

  • Klicka på Databaser i navigeringsfältet till vänster.
  • Klicka på Demo.

Skapa PostgreSQL Visningar med pgAdmin

Steg 3) Skriv in frågan i frågeredigeraren:

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

Steg 4) Klicka på knappen Kör.

Skapa PostgreSQL Visningar med pgAdmin

Steg 5) För att visa innehållet i vyn, gör följande:

  • Skriv följande kommando i frågeredigeraren:
SELECT *
FROM Price_View;
  • Klicka på knappen Kör.

Skapa PostgreSQL Visningar med pgAdmin

Detta kommer att returnera följande:

Skapa PostgreSQL Visningar med pgAdmin

Gör följande för att skapa vyn Price_View2:

Steg 1) Skriv in följande fråga i frågeredigeraren:

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

Steg 2) Klicka på knappen Kör.

Skapa PostgreSQL Visningar med pgAdmin

Steg 3) Gör följande för att se innehållet i vyn:

  • Skriv in följande fråga i frågeredigeraren:
SELECT *
FROM Price_View2;
  • Klicka på knappen Kör.

Skapa PostgreSQL Visningar med pgAdmin

Detta kommer att returnera följande:

Skapa PostgreSQL Visningar med pgAdmin

Skiftande PostgreSQL Visningar

För att åstadkomma samma sak genom pgAdmin, gör så här:

Steg 1) Logga in på ditt pgAdmin-konto.

Steg 2)

  • Klicka på Databaser i navigeringsfältet till vänster.
  • Klicka på Demo.

Skiftande PostgreSQL Visningar med pgAdmin

Steg 3) Skriv in frågan i frågeredigeraren:

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

Steg 4) Klicka på knappen Kör.

Skiftande PostgreSQL Visningar med pgAdmin

Steg 5) Skriv in följande fråga i frågeredigeraren:

SELECT *
FROM Price_View2;

Detta kommer att returnera följande:

Skiftande PostgreSQL Visningar med pgAdmin

Radera PostgreSQL Visningar

För att åstadkomma samma sak genom pgAdmin, gör så här:

Steg 1) Logga in på ditt pgAdmin-konto.

Steg 2)

  • Klicka på Databaser i navigeringsfältet till vänster.
  • Klicka på Demo.

Radera PostgreSQL Visningar med pgAdmin

Steg 3) Skriv in frågan i frågeredigeraren:

DROP VIEW Price_View2;

Steg 4) Klicka på knappen Kör.

Radera PostgreSQL Visningar med pgAdmin

Vyn kommer att raderas.

Ladda ner den databas som används i denna handledning

Vanliga frågor

En tabell lagrar fysiskt data på disk. En vy lagrar bara en SELECT-fråga, så att fråga den kör frågan igen och returnerar aktuell data från bastabellerna.

En materialiserad vy cachar ett frågeresultat på disk. Den läser snabbare än en vanlig vy men behöver REFRESH MATERIALIZED VY för att visa ny data.

En standardvy kör sin fråga varje gång och visar livedata. En materialiserad vy lagrar resultaten på disk för snabbhet men kan vara inaktuell tills den uppdateras.

Ibland. En enkel tabellvy utan aggregering kan uppdateras automatiskt, så INSERT, UPDATE och DELETE fungerar direkt. Komplexa vyer behöver ISTÄLLET FÖR triggers.

Fråga katalogen: SELECT table_name FROM information_schema.views WHERE table_schema = 'public'. I pgAdmin kan du expandera noden Views under ett schema.

AI-assistenter omvandlar en förfrågan i enkelt språk till en CREATE VIEW-sats, namnger vyn och lägger till rätt WHERE- och JOIN-klausuler, vilket snabbar upp frågor som du återanvänder ofta.

Ja. Klistra in ett långt SELECT-tecken så omsluter en AI-assistent den i CREATE OR REPLACE VIEW, föreslår ett namn och flaggar kolumner som behöver alias för att undvika dubbletter av namn.

En normal vy snabbar inte upp frågor eftersom dess SELECT körs varje gång. För snabbare upprepade läsningar, använd en materialiserad vy, som lagrar resultaten på disken tills de uppdateras.

Sammanfatta detta inlägg med: