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.