Importante

La traduzione è uno sforzo comunitario a cui puoi unirti. Questa pagina è attualmente tradotta al 100.00%.

15.5. 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;

Come puoi vedere l’unico cambiamento è la parte create view roads_count_v as all’inizio. Ora possiamo selezionare i dati da quella vista:

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).

Vedrai che abbiamo aggiunto una clausola ORDER BY in modo che le righe della nostra vista siano ben ordinate:

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 Conclusion

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

15.5.5. What’s Next?

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