ben

OMÜ , Bilgisayar Mühendisliği, 13'

3 Mart 2022 Perşembe

View(sanal tablolar)

 view yapıları içerisinde select sorgularını barındırırlar. Sürekli kullandığınız karmaşık sorguları sürekli yazıp çağırmak yerine view içerisinde sisteme kaydedip çağırabilirsiniz. Genel yapıları tüm veritabanı yapılarında(sql server,mysql ve oracle) aynıdır.

dvdrental veritabanı üzerinden bir örnek vermek gerekirse; Action kategorisindeki filmleri ve film dillerini getiren view yapalım. Bunun için öncelikle sql sorgusunu yazalım:


select cg.name as category_name,title,description,release_year,length,rating, ln.name as dil 
from category cg 
inner join  film_category fc on fc.category_id=cg.category_id 
inner join film fl on fl.film_id=fc.film_id 
inner join language ln on ln.language_id=fl.language_id
where cg.name='Action'

Bu sorgudan gelen verileri view yapısına almak istediğimizde ister pgAdmin ile yapın isterseniz DDL komutları ile kendiniz yazın sonuc aynıdır. Benim tavsiyem DDL komutlarıdır.

PqAdmin üzerinden view oluşturmak için view üzerine sağ tıklayarak devam edin


açılan pencerede view yapısına isim vermemiz gerekiyor.


Code kısmına ise yukarıda yazmış olduğumuz sql komutlarını ekleyelim ve kaydedelim.


DDL komutları ile view oluşturmak için queryTool ekranına aşağıdaki komutları yazıp çalıştırmak yeterlidir.



View yapılarını bir tablo gibi kullanabiliriz. çağırmak için select komutunu kullanıp, gelen veriler üzerinde where koşullarını kullanabilir, ruplayabilir ve sıralayabiliriz.

select * from vw_filmler;


Mevcut bir view guncellemek istersek; eğer kodlar query tool ekranında açıksa create kodunun hemen üstüne;

drop view if exists vw_filmler;

 yazarak istediğiniz değişikliği yapıp sorguyu çalıştırabilirsiniz. Fakat kodlar açık değil ise view sekmesinden view yapısnı bulup sağ tıklayarak properties ekranından view yapısını açabilirsiniz, code kısmındaki sql üzerinde değişiklik yapıp kaydettiğinizde view yapınız guncellenecektir.

View yapısını silmek için ;

* drop view vw_filmler kodunu query tool ekranında çalıştımanız ya da 
* view yapısına sağ tıklayarak delete/drop ile silebilirsiniz.


Hiç yorum yok: