Sql Komutlarından View Oluşturma
Sql komutlarından view oluşturma ve faydaları, myadminde gösterimi
View Oluşturmak :
Veri tabanı kavramı içinde teorik olarak mevcut olan view (bakış ) terimi ,farklı kullanıcıların veri tabanına nasıl baktıklarını yada bakış açılarını anlatan terimdir. Bu anlamda bir kullanıcı fiziksel olarak mevcut olan tabloların sadece bir kısmı ile ilgilenir.
VIEW Oluşturmanın Yararları :
Veri tabanı içinde bulunan tablolardaki bazı sütunlarda bulunan bilgilerin herkes tarafından görülmesi istenmeyebilir.
Örneğin : Personelin brüt maaşlarının herkes tarafından listelenebilir olması mahsurlu olabilir. Bu durumda personel adlı temel tablodan persview adlı bir view oluşturulabilir:
CREATE VIEW persview
AS SELECT sicil , sosy_g_no, ad , soyad, dog_tar, adres, cins, böl_no,
yön_s_g_n
FROM personel ;
Persview adlı view, herkesin kullnımına açık , personel adlı tablo ise yetkili kişiler dışındakilere, erişilemez hale getirilirse, maaşların herkes tarafından erişilebilir bilgi olması önlenmiş olur.
Bir view�den bilgi listelenmesi temel tablodan bilgi listelenmesinden farklı değildir :
SELECT *
FROM persview ;
Persview�den maaşlar hariç tüm personel bilgileri listelenecektir. Bir temel tablodaki aynı sütun isimleri kullanılmak zorunda değildir.
2-SORGULAMIN DAHA BASİT HALE GELMESİ
Karmaşık sorgulamalar, View özelliği kullanılarak daha basit hale getirilebilir. Burada temel fikir şudur: Mademki bir view, bir sorgulama sonucu elde edilen bilgiyi (tabloyu) isimlendirerek elde edilen bir virtüel tablodur; o halde karmaşık SELECT komutu içinde, sonucu kullanacak başka bir SELECT komutu yerine, bu sonucu bir view olarak isimlendirerek, view adını kullanmak. Bazı durumlarda ise, işletmenin veri tabanı uygulamasında çok sık olarak sorulan karmaşık soruları bir view yapısı ile saklayarak, daha sonra aynı tip sorgulamalar için bu view yapısını kullanarak daha basit ifadeler kullanmak da olasıdır.
ÖRNEK: Satış bölümünde çalışan personelin herhangi birinden daha düşük maaş alan ve mühendislik bölümünde çalışan kişileri listeleyiniz:
ÇÖZÜM:
SELECT *
FROM personel
WHERE brut < ANY
(SELECT brut
FROM personel
WHERE bol_no=2) AND
Bol_no=1;
(Satış bölümü kodu 2 ve mühendislik bölümü kodu ise 1 kabul ediliyor).
Şimdi bu sorunun cevabı olan tablo bir view olarak saklanırsa:
CREATE VIEW S1view
AS SELECT *
FROM personel
WHERE brut < ANY
(SELECT brut
FROM personel
WHERE bol_no=2) AND
bol_no=1;
Bundan sonra aynı tip sorgulama için sadece
SELECT *
FROM S1view;
yazmak yeterli olacaktır.
3-Sadece View Kullanılarak Gerçekleşebilen Sorgulamalar
Bir tablodan elde edilecek bilgiler için, iki kademeli işlem gerektiren sorgulamalarda, iki adımda bir view oluşturup ikinci adımda esas sorgulamayı bu view yardımı ile gerçekleştirmek, çoğu kez kaçınılmaz bir durumdur.
Aşağıdaki soru ve bunun çözümü olan SQL ifadeleri bu konuda bir fikir verecektir:
ÖRNEK: Her bölümde, o bölümdeki ortalama maaştan daha yüksek maaş alanları listeleyiniz.
ÇÖZÜM: Bu sorunun cevaplandırılması için önce her bölümdeki ortalama maaşların bulunması gereklidir.
CREATE VIEW BOL_OR_VIEW (bol_no, ort_brut)
AS SELECT bol_no, AVG (brut)
FROM personel
GROUP BY bol_no;
Daha sonra, yaratılan BOL_OR_VIEW yardımı ile (bu view, bölüm no�ları ve bölüm ortalama maaşlarını saklamaktadır) sorulan sorunun cevabı elde edilebilir:
SELECT *
FROM personel
WHERE bol_no=BOL_OR_VIEW. Bol_no
.AND. brut > ort_brut;