Sayfalar

9 Eylül 2019 Pazartesi

SQL View Tablolar


View Özellikleri:
- Genellikle karmaşık sorguların tekbir sorgu haline getirilip kullanılmasıdır.
- Bu amaçla raporlama işlemlerinde kullanılmaktadırlar.
- Aynı zamanda güvenlik amacı ile orjinal VT 3. kişilerden korunması amacı ile de kullanılmaktadırlar.

-Herhangi bir sorguyu tablo haline getirirek , bu tablo üzerinden işlemler yapabiliriz.
-ÖNEMLİ!: Insert, Update, Delete sorguları ile bu tabloda değişiklikler yapılabilir fakat bu değişiklikleri fiziksel tabloya yani gerçek verinin çekildiği tabloya yansıtılar. 
-View yapıları fiziksel yani VT'ınına kaydedilen tablolardır.
-View'lar normal tablolara göre daha yavaş çalışırlar.
-View içinde OrderBy kullanılamaz! Ancak View üzerinden Select alınırsa kullanılır.
    SELECT * FROM  VW_SATISTOPLAMI  ORDER BY Total vb...


CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition




ÖRNEK 1:

CREATE VIEW SampleViewOfPersoneller AS
SELECT * FROM Personeller

----------------------------------------------------------- 

Önemli!! Eğer View üzerinde bir alan değiştrilirse Personeller tablosunda da bu alanlar değişecektir!!
UPDATE SampleViewOfPersoneller SET Adres='Şişli 19 Mayıs Mah.'  

WHERE komutunu UNUTTUNUZ Orjinal Personeller Tablosunda ki tüm tablo verileri değişti!! Yedek almadıysanız Geçmiş olsun!!

Ana Tabloda bir değişiklik yapıldığında Örn bir kolon tipi değiştiğinde bu tabloyu kullanan View'larda hata alarız. Bunu önleme için oluşturulan view'lar With Schemabinding komutu ile yaratılırsa, Ana tabloda bir değişiklik yapılırken etkilenen tablolar için bir uyarı alabiliriz. Creat sırasında Ana tablo çağırılıken dbo. namespace'i ile çağrılmalıdır.


CREATE VIEW SampleViewOfPersoneller AS
WITH SCHEMABINDING
SELECT * FROM dbo.Personeller


-------------------------------------------------------------- 


ÖRNEK2:

CREATE VIEW VW_SATISTOPLAMI AS

SELECT P.Adi,P.SoyAdi, SUM(SD.BirimFiyati*SD.Miktar) Total FROM Personeller P
JOIN Satislar S ON S.PersonelID= P.PersonelID
JOIN [Satis Detaylari] SD ON SD.SatisID= S.SatisID
GROUP BY P.Adi,P.SoyAdi



 

MVC LOADING TOO SLOW ISSUE