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.