PostgreSQL Luo näkymä esimerkin avulla

⚡ Älykäs yhteenveto

PostgreSQL Näkymät ovat tallennetusta SELECT-kyselystä rakennettuja pseudotaulukoita, joiden avulla voit kääriä monimutkaisia ​​tai usein käytettyjä kyselyitä yhden nimen taakse, jonka voit lukea, päivittää tai poistaa tavallisen taulukon tavoin.

  • 🗂️ Pseudotaulukko: Näkymä tallentaa kyselyn, ei dataa, mutta valitset sen taulukon tapaan.
  • 🛠️ Luoda: CREATE VIEW nimeää SELECT-kyselyn, jopa useiden perustaulukoiden välillä, helppoa uudelleenkäyttöä varten.
  • ♻️ Korvata: CREATE OR REPLACE VIEW muuttaa näkymää ilman pudotustaping se.
  • 🗑️ Drop: DROP VIEW poistaa näkymän ja IF EXISTS välttää virheen.
  • 🤖 Tekoälyn apu: Tekoälyavustajat luovat näkymämääritelmiä ja ehdottavat, mitkä kyselyt rivitetään.

PostgreSQL Luo näkymä

Mikä on PostgreSQL Näytä?

In PostgreSQL, näkymä on pseudotaulukko. Tämä tarkoittaa, että näkymä ei ole todellinen pöytä. Voimme kuitenkin VALITSE sen tavalliseksi taulukoksi. Näkymässä voi olla kaikki taulukon sarakkeet tai osa niistä. Näkymä voi myös olla esitys useammasta kuin yhdestä taulukosta.

Taulukoita kutsutaan perustaulukoiksi. Näkymää luotaessa sinun tarvitsee vain luoda kysely ja antaa sille nimi, mikä tekee siitä hyödyllisen työkalun rivitykseen.ping monimutkaisia ​​ja yleisesti käytettyjä kyselyitä.

Luominen PostgreSQL Näyttökerrat

Luo a PostgreSQL -näkymässä käytämme CREATE VIEW -käskyä. Tässä on tämän lauseen syntaksi:

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

OR REPLACE -parametri korvaa näkymän, jos se on jo olemassa. Jos jätetään pois ja näkymä on jo olemassa, palautetaan virhe.

Parametri view-name on luotavan näkymän nimi.

WHERE-ehdot ovat valinnaisia, ja niiden on täytyttävä, jotta tietue voidaan lisätä näkymään.

Harkitse alla olevaa hintataulukkoa:

Hinta:

Luominen PostgreSQL Näyttökerrat

Luodaan näkymä yllä olevasta taulukosta:

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

Yllä oleva komento luo näkymän, joka perustuu SELECT-lause. Vain tietueet, joiden hinta on yli 200, lisätään näkymään. Näkymälle on annettu nimi Price_View. Tehkäämme kysely nähdäksemme sen sisällön:

SELECT *
FROM Price_View;

Tämä palauttaa seuraavan:

Luominen PostgreSQL Näyttökerrat

Vaikka perustaulukossa on 4 tietuetta, näkymään lisättiin vain 2.

Tässä voimme lisätä näkymään vain yhden sarakkeen. Luodaan näkymä, joka sisältää vain yhden Price-taulukon sarakkeen:

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

Näkymälle on annettu nimi Price_View2 ja se sisältää vain Hintataulukon hintasarakkeen. Tehdään kysely näkymästä nähdäksemme sen sisällön:

SELECT *
FROM Price_View2;

Tämä palauttaa seuraavan:

Luominen PostgreSQL Näyttökerrat

Muuttaminen PostgreSQL Näyttökerrat

Näkymän määritelmää voidaan muuttaa ilman, että sitä tarvitsee pudottaa. Tämä tehdään CREATE OR REPLACE VIEW -käskyn avulla.

Osoitetaan tämä päivittämällä näkymä nimeltä Price_View2.

Price_View2:

Muuttaminen PostgreSQL Näyttökerrat

Kirjataulukko on seuraava:

Kirja:

Muuttaminen PostgreSQL Näyttökerrat

Hintataulukko on seuraava:

Hinta:

Muuttaminen PostgreSQL Näyttökerrat

Seuraava kysely auttaa meitä päivittämään näkymän 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;

Kysytään nyt näkymästä nähdäksemme sen sisällön:

Muuttaminen PostgreSQL Näyttökerrat

Näkymää on muutettu, ja nyt meillä on kaksi saraketta kahdesta eri taulukosta. Tämä on saavutettu käyttämällä JOIN-lausetta.

poistaminen PostgreSQL Näyttökerrat

Aina kun haluat poistaa a PostgreSQL näkymässä voit käyttää DROP VIEW -lauseketta. Tässä on lauseen syntaksi:

DROP VIEW [IF EXISTS] view-name;

Parametri view-name on poistettavan näkymän nimi.

Tässä syntaksissa JOS ON OLEMASSALLISTUVA funktio on valinnainen. Jos et määritä sitä ja yrität poistaa näkymän, jota ei ole olemassa, saat virheen.

Jos esimerkiksi haluat pudottaa näkymän nimeltä Hinta_näkymä2, voimme suorittaa seuraavan lauseen:

DROP VIEW Price_View2;

Näkymä poistetaan.

pgAdminin avulla

Katsotaanpa nyt, miten nämä toiminnot voidaan suorittaa pgAdminilla.

Luominen PostgreSQL Näyttökerrat

Suorita sama pgAdminin kautta seuraavasti:

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  • Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  • Napsauta Demo.

Luominen PostgreSQL Näkymät pgAdminilla

Vaihe 3) Kirjoita kysely kyselyeditoriin:

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

Vaihe 4) Napsauta Suorita-painiketta.

Luominen PostgreSQL Näkymät pgAdminilla

Vaihe 5) Voit tarkastella näkymän sisältöä seuraavasti:

  • Kirjoita seuraava komento kyselyeditoriin:
SELECT *
FROM Price_View;
  • Napsauta Suorita-painiketta.

Luominen PostgreSQL Näkymät pgAdminilla

Tämä palauttaa seuraavat tiedot:

Luominen PostgreSQL Näkymät pgAdminilla

Luo näkymä Price_View2 seuraavasti:

Vaihe 1) Kirjoita seuraava kysely kyselyeditoriin:

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

Vaihe 2) Napsauta Suorita-painiketta.

Luominen PostgreSQL Näkymät pgAdminilla

Vaihe 3) Näet näkymän sisällön seuraavasti:

  • Kirjoita seuraava kysely kyselyeditoriin:
SELECT *
FROM Price_View2;
  • Napsauta Suorita-painiketta.

Luominen PostgreSQL Näkymät pgAdminilla

Tämä palauttaa seuraavat tiedot:

Luominen PostgreSQL Näkymät pgAdminilla

Muuttaminen PostgreSQL Näyttökerrat

Suorita sama pgAdminin kautta seuraavasti:

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  • Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  • Napsauta Demo.

Muuttaminen PostgreSQL Näkymät pgAdminilla

Vaihe 3) Kirjoita kysely kyselyeditoriin:

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

Vaihe 4) Napsauta Suorita-painiketta.

Muuttaminen PostgreSQL Näkymät pgAdminilla

Vaihe 5) Kirjoita seuraava kysely kyselyeditoriin:

SELECT *
FROM Price_View2;

Tämä palauttaa seuraavat tiedot:

Muuttaminen PostgreSQL Näkymät pgAdminilla

poistaminen PostgreSQL Näyttökerrat

Suorita sama pgAdminin kautta seuraavasti:

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  • Valitse vasemmalla olevasta navigointipalkista Tietokannat.
  • Napsauta Demo.

poistaminen PostgreSQL Näkymät pgAdminilla

Vaihe 3) Kirjoita kysely kyselyeditoriin:

DROP VIEW Price_View2;

Vaihe 4) Napsauta Suorita-painiketta.

poistaminen PostgreSQL Näkymät pgAdminilla

Näkymä poistetaan.

Lataa tässä opetusohjelmassa käytetty tietokanta

UKK

Taulukko tallentaa fyysisesti tiedot levylle. Näkymä tallentaa vain SELECT-kyselyn, joten sen kysely suorittaa kyselyn uudelleen ja palauttaa nykyiset tiedot perustaulukoista.

Materialisoitu näkymä tallentaa kyselytuloksen välimuistiin levylle. Se lukee nopeammin kuin tavallinen näkymä, mutta vaatii REFRESH MATERIALIZED VIEW -komennon uusien tietojen näyttämiseksi.

Vakionäkymä suorittaa kyselynsä joka kerta ja näyttää reaaliaikaista dataa. Materialisoitu näkymä tallentaa tulokset levylle nopeuden vuoksi, mutta voi olla vanhentunutta, kunnes se päivitetään.

Joskus. Yksinkertainen yhden taulukon näkymä ilman aggregointia on automaattisesti päivittyvä, joten INSERT, UPDATE ja DELETE toimivat suoraan. Monimutkaiset näkymät tarvitsevat INSTEAD-liipaisimien SIJAAN.

Tee kysely luettelosta: SELECT table_name FROM information_schema.views WHERE table_schema = 'public'. pgAdminissa voit laajentaa Views-solmun skeeman alle.

Tekoälyavustajat muuttavat selkokielisen pyynnön CREATE VIEW -lausekkeeksi, nimeävät näkymän ja lisäävät oikeat WHERE- ja JOIN-lausekkeet, mikä nopeuttaa usein käyttämiäsi kyselyitä.

Kyllä. Liitä pitkä SELECT-lause, niin tekoälyavustaja lisää sen CREATE OR REPLACE VIEW -näkymään, ehdottaa nimeä ja merkitsee aliaksia tarvitsevat sarakkeet kaksoisnimien välttämiseksi.

Normaali näkymä ei nopeuta kyselyitä, koska sen SELECT suoritetaan joka kerta. Nopeampia toistuvia lukuja varten käytä materialisoitua näkymää, joka tallentaa tulokset levylle, kunnes ne päivitetään.

Tiivistä tämä viesti seuraavasti: