[T-Sql] View

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.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir