Importante

La traduzione è uno sforzo comunitario you can join. Questa pagina è attualmente tradotta al 88.89%.

15.5. Lezione: Viste

Quando scrivi una query, devi spendere molto tempo e sforzo per formularla. Con le viste, puoi salvare la definizione di una query SQL in una «tabella virtuale» riutilizzabile.

L’obiettivo di questa lezione: Salvare una query come una vista.

15.5.1. Creare una Vista

Puoi considerare una vista proprio come un tabella, ma i suoi dati sono recuperati da una query. Cerchiamo di fare una una semplice vista basata sull’esempio soprastante:

create view roads_count_v as
  select count(people.name), streets.name
  from people, streets where people.street_id=streets.id
  group by people.street_id, streets.name;

As you can see the only change is the create view roads_count_v as part at the beginning. We can now select data from that view:

select * from roads_count_v;

Risultato:

 count |    name
-------+-------------
     1 | Main Road
     2 | High street
     1 | Low Street
(3 rows)

15.5.2. Modificare una Vista

Una vista non è bloccata e non contiene «dati reali». Questo significa che puoi facilmente cambiarla senza avere un impatto sui dati del tuo database:

CREATE OR REPLACE VIEW roads_count_v AS
  SELECT count(people.name), streets.name
  FROM people, streets WHERE people.street_id=streets.id
  GROUP BY people.street_id, streets.name
  ORDER BY streets.name;

(Questo esempio mostra anche come migliore prassi la convenzione di usare il MAIUSCOLO per tutte le parole chiave SQL).

You will see that we have added an ORDER BY clause so that our view rows are nicely sorted:

select * from roads_count_v;

 count |    name
-------+-------------
     2 | High street
     1 | Low Street
     1 | Main Road
(3 rows)

15.5.3. Eliminare una Vista

Se non hai più bisogno di una vista, puoi eliminarla in questo modo:

drop view roads_count_v;

15.5.4. In Conclusione

Usando le viste, puoi salvare una query e accedere ai suoi risultati come se fosse una tabella.

15.5.5. Cosa Segue?

A volte, quando si cambiano i dati, si vuole che le modifiche abbiano effetti altrove nel database. La prossima lezione ti mostrerà come farlo.