Create or replace view? Oto jest pytanie…


"Create or replace view" pytaniem nie jest. Jeżeli nie możesz tworzyć tabel to warto swoje zapytania zapisać jako widoki. Wówczas będziesz mógł sięgać do do niego tak jak do każdej tabeli czyli wymieniając nazwę widoku i tyle. 

Przy czym prawdą jest, iż w tabeli dane są, a widoki to tylko zapis zapytania, każde odwołanie do widoku spowoduje wpierw wykonanie zapytania a później korzystasz z danych, na czasie nie oszczędzisz w ten sposób, ale na czytelności kolejnych zapytań, zmniejszeniu ryzyka niewłąściwych wyników jak najbardziej. 

Zapis jak w tytule powoduje utworzenie widoku zgodnie z kwerendą, a jeżeli już jest o określonej nazwie to definicja widoku zostanie zaktualizowana, czyli tytułowe pytanie de facto nim nie jest.

Czytelnicy starsi (nie o wiek metrykalny chodzi, a długość bycia ze mną na blogu) wiedzą, iż swego czasu łączyliśmy dane z rozliczeń starych z rozliczeniami nowymi, dwie tabele. Użyliśmy do tego klauzulę union. 


Skorzystamy z danych ponownie, by połączyć dane z dwóch tabel tworzymy zapytanie i wykorzystujemy jako definicję widoku i teraz możemy do niego zagląd w prosty sposób, jak do tabeli:

1)      Definicja widoku
create or replace view v_rozliczenia_lacznie
as

 select
   koniec_roku
   , kontrakt
   , naleznosc naleznosc_saldo
 from rozliczenia_stare

 union all

 select
   to_date(data_stanu, 'YYYY-MM-DD')
   , kontrakt
   , saldo
 from rozliczenia_nowe
 order by 1, 2;

2)      A tak wywołujemy dane z widoku, ale pamiętaj iż wpierw zostanie wykonane zapytanie definiujące zapytanie a później wyświetlone dane.

select * from v_rozliczenia_lacznie;

Definiując widoki warto nazwę poprzedzić „v_”. Wówczas zwiększamy czytelność kodu, wiemy iż to jest odwołanie do widoku :-) Pozdrówka i na plażę  - bo ja z Gdańska, to co mogę Wam podpowiadać :-) 


W. 
ps. a ponieważ o widoku ten post, to jakimś ładnym okrasić trzeba, to jest:



 

Brak komentarzy:

Prześlij komentarz