PostgreSQL - VISUALIZZAZIONI
Le viste sono pseudo-tabelle. Cioè, non sono tavoli reali; tuttavia appaiono come tabelle normali per SELECT. Una vista può rappresentare un sottoinsieme di una tabella reale, selezionando determinate colonne o determinate righe da una tabella ordinaria. Una vista può anche rappresentare tabelle unite. Poiché alle viste vengono assegnate autorizzazioni separate, è possibile utilizzarle per limitare l'accesso alla tabella in modo che gli utenti vedano solo righe o colonne specifiche di una tabella.
Una vista può contenere tutte le righe di una tabella o righe selezionate da una o più tabelle. Una vista può essere creata da una o più tabelle, che dipende dalla query PostgreSQL scritta per creare una vista.
Le viste, che sono una specie di tabelle virtuali, consentono agli utenti di eseguire le seguenti operazioni:
Struttura i dati in modo che gli utenti o le classi di utenti trovino naturali o intuitivi.
Limita l'accesso ai dati in modo tale che un utente possa vedere solo dati limitati invece della tabella completa.
Riepiloga i dati di varie tabelle, che possono essere utilizzati per generare rapporti.
Poiché le viste non sono tabelle normali, potresti non essere in grado di eseguire un'istruzione DELETE, INSERT o UPDATE su una vista. Tuttavia, è possibile creare una REGOLA per correggere questo problema di utilizzare DELETE, INSERT o UPDATE in una vista.
Creazione di viste
Le viste di PostgreSQL vengono create utilizzando il CREATE VIEWdichiarazione. Le viste PostgreSQL possono essere create da una singola tabella, più tabelle o un'altra vista.
La sintassi base di CREATE VIEW è la seguente:
CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition]; 
    Puoi includere più tabelle nella tua istruzione SELECT in modo molto simile a come le usi nella normale query PostgreSQL SELECT. Se è presente la parola chiave TEMP o TEMPORARY facoltativa, la vista verrà creata nello spazio temporaneo. Le visualizzazioni temporanee vengono automaticamente eliminate alla fine della sessione corrente.
Esempio
Considera, la tabella AZIENDA contiene i seguenti record:
id | name  | age | address    | salary
----+-------+-----+------------+--------
  1 | Paul  |  32 | California |  20000
  2 | Allen |  25 | Texas      |  15000
  3 | Teddy |  23 | Norway     |  20000
  4 | Mark  |  25 | Rich-Mond  |  65000
  5 | David |  27 | Texas      |  85000
  6 | Kim   |  22 | South-Hall |  45000
  7 | James |  24 | Houston    |  10000 
    Di seguito è riportato un esempio per creare una vista dalla tabella AZIENDA. Questa visualizzazione verrebbe utilizzata per avere solo poche colonne dalla tabella AZIENDA -
testdb=# CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM  COMPANY; 
    Ora puoi interrogare COMPANY_VIEW in modo simile a come interroghi una tabella effettiva. Di seguito è riportato l'esempio:
testdb=# SELECT * FROM COMPANY_VIEW; 
    Ciò produrrebbe il seguente risultato:
id | name  | age
----+-------+-----
  1 | Paul  |  32
  2 | Allen |  25
  3 | Teddy |  23
  4 | Mark  |  25
  5 | David |  27
  6 | Kim   |  22
  7 | James |  24
(7 rows) 
    Eliminazione delle visualizzazioni
Per eliminare una visualizzazione, utilizzare semplicemente l'istruzione DROP VIEW con l'estensione view_name. La sintassi di base di DROP VIEW è la seguente:
testdb=# DROP VIEW view_name; 
    Il seguente comando cancellerà la vista COMPANY_VIEW, che abbiamo creato nell'ultima sezione -
testdb=# DROP VIEW COMPANY_VIEW;                    