Merhaba arkadaşlar,
Bu yazımda View’lerden bahsedeceğim.
View‘ler bir veya birden fazla birleşmiş tablonun tek bir tablo gibi davranmasını sağlamak(Sanal tablo) için kullanılır.
Aşağıdaki şekilde oluşturulurlar:
create view miniProducts
as
select
p.ProductID,
p.UnitPrice,
p.UnitsInStock
from Products as p
Yukarıdaki sorgu parçası ile Product tablosundan istediğimiz kısımları gösterecek sanal bir tablo oluşturduk.
Aşağıdaki şekilde bu view’i select ifadesi ile kullanabiliriz.
select * from miniProducts
Bu sorgunun çıktısı aşağıdaki gibidir.
Oluşturulmuş bir view i değiştirmek için alter kullanılır. Aşağıdaki sorgu oluşturmuş olduğumuz miniProducts view’i değiştirir.
alter view miniProducts
as
select
p.ProductID as UrunID,
p.ProductName as UrunAdi,
p.UnitPrice as Fiyat,
p.UnitsInStock as Stok
from Products as p
Aşağıdaki sorguyu çalıştırdığımızda ise View’in getirdiği sonucun değiştiğini görürsünüz.
select * from miniProducts
Ayrıca View’lere ekleme işlemi de yapabiliriz. Aşağıdaki sorguda miniProducts view’ine veri eklenir. Aslında view’e değil de products tablosuna eklenir. Yani miniProducts Products tablosunun sanal tablosu olmuştur.
insert miniProducts(UrunAdi,Fiyat,Stok)
values('Patlican',10,25)
select * from miniProducts
Patlıcanın Başarılı bir şekide eklendiğini yukarıda gördük, Şimdi de Products tablosundan tüm verileri çekelim bakalım bu veriler products tablosuna da eklenmişmi görelim.
select * from Products
Yukarıdaki sorgunun sonucunda Patlıcan ürünün aslında Products tablosuna eklendiğini görmüş olduk. Böylece View’lerin aslında var olmadıklarını, Tabloların sanalları olduklarını söyleyebiliriz.
Encryprion : Kodun şifrelenerek başkası tarafından view kodunun görüntülenememesini sağlar.
Recompile : View içindeki sorgu çalıştırılacağında syntax(sözdizimi) doğru mu diye kontrol edilmesini sağlayan koddur.
create view ProductDetails
with encryption,recompile
as
select
p.ProductID,
p.ProductName,
c.CategoryName,
s.CompanyName,
p.UnitPrice,
p.UnitsInStock
from Products as p
inner join Categories as c
on c.CategoryID = p.CategoryID
inner join Suppliers as s
on p.SupplierID = s.SupplierID
go
Şeklinde kullanılır.
Bir sonraki yazımda görüşmek üzeri kendinize iyi bakınız.




