Yapacağınız sql işleminde birden fazla tabloyu ve onların farklı farklı colonlarını kullanacaksınız,hepsini birleştirmek ,gerekli tablodan sorgu yapmak biraz zahmetli bir iş olabilir,bunun yerine view denen sanal tablolardan oluşturup,gerekli colonları farklı tablolardan alıp sorguları tek bir tablo üzerinden yapmak işinizi kolaylaştırailir.Karmaşık sorgular kolay bir hale gelmiş olur.Ayrıca view kullanmanın çok önemli nedenlerinden bir tanesi sağladığı güvelikler.Tablolarınızın tamanının görünmesini istemediğiniz zamanlarda sanal tablo kullanıp tablolarınızın tamamının görünmesini engelleyebilirsiniz.
View ler üzerinde yapılan değişikler kendilerini oluşturan kaynak tabloları da etkiler,aynı değişiklikler kaynak tablolara da yansır.
Oluşturulan Viewler resimde görüldüğü gibi Object Explorer kısmında ana başlık altında toplanır
Viewler nasıl oluşturulur?
create view vw_viewAdi
--tavsiye olunur ki oluşturulan view adları vw_ ile başlasın,böylece veri tabanınıza yeni bakan biri onun view olduğunu kolayca alsın
as
select kolonAdi from tabloAdi
where şart
with check option
view oluştururken with check point ifadesi yazılırsa,tanımlamadaki where şartı muhafaza edilmiş olur where şartı dışındaki insert,update,delete işlemleri yapılmaz hata verir
create view vw_DogruHazirlanmisView
as
select firstname,lastname
from Employees
where FirstName like 'a%'
with check option
insert into vw_DogruHazirlanmisView values('derya','dd')
--eklenme yapılmak istendiğinde hata verir
hata:The attempted insert or update failed because the target view either specifies WITH CHECK OPTION or spans a view that specifies WITH CHECK OPTION and one or more rows resulting from the operation did not qualify under the CHECK OPTION constraint.(with check pointten dolayı 'a' ile başlamayan bir ekleme yapılamaz)
with Schemabinding
Viewin oluşturulduğu kaynak tablo üzerinde değişiklik yapılmasına izin vermeyecek.
create view vw_CokUgrastim
with schemabinding --sütunla ilgili bir değişiklik yapılamıyor
as
select firstname,lastname,city
from dbo.employees --dbo. olmalı
drop table Employees --yazıldığında hata verir
hata:Could not drop object 'Employees' because it is referenced by a FOREIGN KEY constraint.
with encription(gizli view)
Kaynekların gizliliğini sağlayan koddur,kullanıcı sadece oluşturulan view ile ilgili verilere erişebiliyor,kaynak tablolarla ilgili hiç bir bilgiye ulaşamıyor.create view vw_Benim
with encryption --kaynak görmeme,design aktif değil
as
select * from products
Resimde de görüldüğü gibi gizli view kullanıldıktan sonra viewin üstünde kilit işareti olur ve 'modify' seçeneği aktiif değildir.
DERYA GÜNDÜZ
6 yorum:
Merhabalar çok güzel bir paylaşım, teşekkür ediyorum :)
faydalı olmuşsa ne mutlu:)
ecryption edilmil bir viewi görüntülem mümkün mü, syadmin üzerinden table üzerinden görmek mümkün deniyor ama nasıl olacağı konusunda bir bilgi yok. yardımcı olurmusunuz. yapmış olduğum bir viewi yedeklemedim ve açmam gerekiyor.
Sql Decrypter ile açabilirsin
aynı zamanda procedure,function ve triggerler için
Merhabalar Derya hanım. Çok güzelsiniz.
merhaba abla makalenden çok etkilendik sizi seviyoruz :***
Yorum Gönder