Важно
Prevod je zajednički napor :ref:`možete se pridružiti `. Ova stranica je trenutno prevedena na |napredak prevođenja|.
15.5. Lekcija: Pogledi
Kada pišete upit, morate potrošiti mnogo vremena i truda na njegovo formulisanje. Pomoću pogleda možete sačuvati definiciju SQL upita u „virtuelnu tabelu“ za višekratnu upotrebu.
Cilj ove lekcije: Sačuvati upit kao pogled.
15.5.1. Pravljenje pogleda
Sa pogledom možete raditi baš kao sa tabelom, ali njegovi podaci potiču iz upita. Napravimo jednostavan pogled na osnovu gore navedenog:
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;
Kao što vidite, jedina promena je deo create view roads_count_v as na početku. Sada možemo izabrati podatke iz tog pogleda:
select * from roads_count_v;
Rezultat:
count | name
-------+-------------
1 | Main Road
2 | High street
1 | Low Street
(3 rows)
15.5.2. Izmena pogleda
Pogled nije fiksan i ne sadrži nikakve „stvarne podatke“. To znači da ga možete lako promeniti bez uticaja na bilo koje podatke u svojoj bazi podataka:
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;
(Ovaj primer takođe prikazuje konvenciju najbolje prakse korišćenja VELIKIH SLOVA za sve SQL ključne reči.)
Videćete da smo dodali ORDER BY klauzulu tako da su redovi našeg pogleda lepo sortirani:
select * from roads_count_v;
count | name
-------+-------------
2 | High street
1 | Low Street
1 | Main Road
(3 rows)
15.5.3. Brisanje pogleda
Ako vam pogled više nije potreban, možete ga obrisati ovako:
drop view roads_count_v;
15.5.4. Zaključak
Pomoću pogleda možete sačuvati upit i pristupiti njegovim rezultatima kao da je tabela.
15.5.5. Šta je sledeće?
Ponekad, pri promeni podataka, želite da vaše izmene imaju efekte na drugim mestima u bazi podataka. Sledeća lekcija će vam pokazati kako da to uradite.