PostgreSQL Crea vista con esempio

⚡ Riepilogo intelligente

PostgreSQL Le viste sono pseudo-tabelle create a partire da una query SELECT memorizzata, che consentono di racchiudere query complesse o utilizzate frequentemente dietro un singolo nome, permettendo di leggerle, aggiornarle o eliminarle come una normale tabella.

  • 🗂️ Pseudo-tabella: Una vista memorizza una query, non i dati, eppure la si seleziona come se fosse una tabella.
  • Creare: L'istruzione CREATE VIEW assegna un nome a una query SELECT, anche su più tabelle di base, per facilitarne il riutilizzo.
  • ♻️ Sostituisci: CREATE OR REPLACE VIEW modifica una vista senza trascinamentoping esso.
  • 🗑️ Far cadere: DROP VIEW rimuove una vista, mentre IF EXISTS evita un errore.
  • 🤖 Aiuto tramite IA: Gli assistenti basati sull'IA generano definizioni di vista e suggeriscono quali query includere.

PostgreSQL Crea vista

Cosa è PostgreSQL Visualizza?

In PostgreSQL, una vista è una pseudo-tabella. Ciò significa che una vista non è una tabella reale. Tuttavia, possiamo SELEZIONARLO come una normale tabella. Una vista può avere tutte o alcune colonne della tabella. Una vista può anche essere una rappresentazione di più di una tabella.

Le tabelle sono denominate tabelle di base. Quando si crea una vista, è sufficiente creare una query e assegnarle un nome, rendendola uno strumento utile per il wrapping.ping query complesse e di uso comune.

Creazione PostgreSQL Visualizzazioni

Per creare un' PostgreSQL view, utilizziamo l'istruzione CREATE VIEW. Ecco la sintassi di questa affermazione:

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

Il parametro OR REPLACE sostituirà la vista se esiste già. Se omesso e la vista esiste già, verrà restituito un errore.

Il parametro view-name è il nome della vista che devi creare.

La/le condizione/i WHERE sono facoltative e devono essere soddisfatte affinché un record possa essere aggiunto alla vista.

Considera la tabella dei prezzi riportata di seguito:

Prezzo:

Creazione PostgreSQL Visualizzazioni

Creiamo una vista dalla tabella sopra:

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

Il comando precedente creerà una vista basata su Istruzione SELECT. Verranno aggiunti alla vista solo i record il cui prezzo è maggiore di 200. Alla vista è stato assegnato il nome Price_View. Interroghiamolo per vederne il contenuto:

SELECT *
FROM Price_View;

Questo restituisce quanto segue:

Creazione PostgreSQL Visualizzazioni

Anche se la tabella di base ha 4 record, solo 2 sono stati aggiunti alla vista.

Qui possiamo aggiungere una sola colonna alla vista. Creiamo una vista che includa una sola colonna della tabella Prezzi:

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

Alla vista è stato assegnato il nome Price_View2 e include solo la colonna dei prezzi della tabella Prezzi. Interroghiamo la vista per vederne il contenuto:

SELECT *
FROM Price_View2;

Questo restituisce quanto segue:

Creazione PostgreSQL Visualizzazioni

Cambiare PostgreSQL Visualizzazioni

La definizione di una vista può essere modificata senza doverla eliminare. Questo viene fatto utilizzando l'istruzione CREATE OR REPLACE VIEW.

Dimostriamolo aggiornando la vista denominata Price_View2.

Prezzo_Visualizzazione2:

Cambiare PostgreSQL Visualizzazioni

La tabella Libro è la seguente:

Libro:

Cambiare PostgreSQL Visualizzazioni

La tabella dei prezzi è la seguente:

Prezzo:

Cambiare PostgreSQL Visualizzazioni

La seguente query ci aiuterà ad aggiornare la vista 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;

Interroghiamo ora la vista per vederne il contenuto:

Cambiare PostgreSQL Visualizzazioni

La vista è stata modificata e ora abbiamo due colonne di due tabelle diverse. Ciò è stato ottenuto utilizzando un'istruzione JOIN.

Eliminazione PostgreSQL Visualizzazioni

Ogni volta che è necessario eliminare un file PostgreSQL Per visualizzare la vista, è possibile utilizzare l'istruzione DROP VIEW. Ecco la sintassi dell'istruzione:

DROP VIEW [IF EXISTS] view-name;

Il parametro view-name è il nome della vista da eliminare.

In questa sintassi, IF EXISTS è facoltativo. Se non lo si specifica e si tenta di eliminare una vista inesistente, verrà visualizzato un errore.

Ad esempio, per eliminare la vista denominata Price_View2, possiamo eseguire la seguente istruzione:

DROP VIEW Price_View2;

La vista verrà eliminata.

Utilizzando pgAdmin

Vediamo ora come eseguire queste azioni utilizzando pgAdmin.

Creazione PostgreSQL Visualizzazioni

Per ottenere lo stesso risultato tramite pgAdmin, procedi come segue:

Passo 1) Accedi al tuo account pgAdmin.

Passo 2)

  • Dalla barra di navigazione a sinistra, fare clic su Database.
  • Fare clic su Demo.

Creazione PostgreSQL Visualizzazioni utilizzando pgAdmin

Passo 3) Digita la query nell'editor di query:

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

Passo 4) Fare clic sul pulsante Esegui.

Creazione PostgreSQL Visualizzazioni utilizzando pgAdmin

Passo 5) Per visualizzare il contenuto della vista, procedere come segue:

  • Digitare il seguente comando nell'editor di query:
SELECT *
FROM Price_View;
  • Fare clic sul pulsante Esegui.

Creazione PostgreSQL Visualizzazioni utilizzando pgAdmin

Verrà restituito quanto segue:

Creazione PostgreSQL Visualizzazioni utilizzando pgAdmin

Per creare la vista Price_View2, procedere come segue:

Passo 1) Digitare la seguente query nell'editor di query:

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

Passo 2) Fare clic sul pulsante Esegui.

Creazione PostgreSQL Visualizzazioni utilizzando pgAdmin

Passo 3) Per visualizzare il contenuto della vista, procedere come segue:

  • Digitare la seguente query nell'editor di query:
SELECT *
FROM Price_View2;
  • Fare clic sul pulsante Esegui.

Creazione PostgreSQL Visualizzazioni utilizzando pgAdmin

Verrà restituito quanto segue:

Creazione PostgreSQL Visualizzazioni utilizzando pgAdmin

Cambiare PostgreSQL Visualizzazioni

Per ottenere lo stesso risultato tramite pgAdmin, procedi come segue:

Passo 1) Accedi al tuo account pgAdmin.

Passo 2)

  • Dalla barra di navigazione a sinistra, fare clic su Database.
  • Fare clic su Demo.

Cambiare PostgreSQL Visualizzazioni utilizzando pgAdmin

Passo 3) Digita la query nell'editor di query:

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

Passo 4) Fare clic sul pulsante Esegui.

Cambiare PostgreSQL Visualizzazioni utilizzando pgAdmin

Passo 5) Digitare la seguente query nell'editor di query:

SELECT *
FROM Price_View2;

Verrà restituito quanto segue:

Cambiare PostgreSQL Visualizzazioni utilizzando pgAdmin

Eliminazione PostgreSQL Visualizzazioni

Per ottenere lo stesso risultato tramite pgAdmin, procedi come segue:

Passo 1) Accedi al tuo account pgAdmin.

Passo 2)

  • Dalla barra di navigazione a sinistra, fare clic su Database.
  • Fare clic su Demo.

Eliminazione PostgreSQL Visualizzazioni utilizzando pgAdmin

Passo 3) Digita la query nell'editor di query:

DROP VIEW Price_View2;

Passo 4) Fare clic sul pulsante Esegui.

Eliminazione PostgreSQL Visualizzazioni utilizzando pgAdmin

La vista verrà eliminata.

Scarica il database utilizzato in questo tutorial

DOMANDE FREQUENTI

Una tabella memorizza fisicamente i dati su disco. Una vista, invece, memorizza solo una query SELECT, quindi l'esecuzione di una query su di essa riesegue tale query e restituisce i dati correnti dalle tabelle di base.

Una vista materializzata memorizza nella cache il risultato di una query su disco. La lettura è più veloce rispetto a una vista semplice, ma è necessario aggiornare la vista materializzata (FRESH MATERIALIZED VIEW) per visualizzare i nuovi dati.

Una vista standard esegue la query ogni volta, mostrando i dati in tempo reale. Una vista materializzata memorizza i risultati su disco per velocizzare il processo, ma potrebbe non essere aggiornata finché non viene eseguita.

A volte. Una semplice vista a tabella singola senza aggregazione è aggiornabile automaticamente, quindi le operazioni INSERT, UPDATE e DELETE funzionano direttamente. Le viste complesse richiedono trigger INSTEAD OF.

Interroga il catalogo: SELECT table_name FROM information_schema.views WHERE table_schema = 'public'. In pgAdmin, puoi espandere il nodo Views sotto uno schema.

Gli assistenti basati sull'intelligenza artificiale trasformano una richiesta in linguaggio naturale in un'istruzione CREATE VIEW, assegnano un nome alla vista e aggiungono le clausole WHERE e JOIN corrette, velocizzando le query che si riutilizzano frequentemente.

Sì. Incolla una lunga query SELECT e un assistente basato sull'IA la racchiuderà in un'istruzione CREATE OR REPLACE VIEW, suggerirà un nome e segnalerà le colonne che necessitano di alias per evitare nomi duplicati.

Una vista normale non velocizza le query perché la sua istruzione SELECT viene eseguita ogni volta. Per letture ripetute più veloci, utilizzare una vista materializzata, che memorizza i risultati su disco fino al momento dell'aggiornamento.

Riassumi questo post con: