Bu yazımızda SQL view ne olduğuna ve nasıl oluşturulup kullanıldığına değineceğiz.
SQL de veri tabanından tabloları görüntülemek veya birleştirerek görüntülemek için sorgular yazarız. Her defasında yeniden sorgular yazmamak için bir kez view oluşturup o view çağırmak daha kolaydır. Bizi defalarca aynı kodu yazmaktan kurtarır. Ama dezavantajları da vardır maalesef. Bunlar dışarıdan parametre almamaları ve performans kaybına sebep olmalarıdır.
NOT : Eğer QUERY ( Sorgu ) hakkında bilginiz yoksa öncelikle onu öğrenmenizi tavsiye ederiz. Örneklerimiz yaparken northwind örnek veri tabanını kullanacağız. northwind veri tabanı öğrenme aşamasında kullanılmak için yapılmış veri tabanıdır.
*NORTHWIND database ndeki terimler
Employees: Çalışanlar — Customer: Müşteri — Orders: Sipariş — Order Details : Sipariş Detayları, Products: Ürünler — Region: Bölge, kuzey, güney — shippers : nakliyatçılar — suppliers : satıcılar territories : saha, şehir — quantity : miktar, adet
View oluşturmak için :
go
create view viewName
as
Query......
go
Yukarıda görüldüğü gibi create komutu ile view ismi vererek oluştururuz.
View çagırmak için: View ismi ile çağırdığımızda query çalıştırışır ve sonuç bize döner.
select * from ViewName
Örnek 1: Products ile order details tablosundan ProductID, ProductName, UnitPrice çeken view yazalım?
go
create view vProductsJoinOrderDetails
as
select p.ProductID, ProductName, o.UnitPrice from Products p inner join [Order Details] o
on p.ProductID = o.ProductID
go
view çağıralım;
select * from dbo.vProductsJoinOrderDetails
örnek 2: ContactName i içinde s harfi geçen müşterilerin siparişlerindeki toplam kargoları hesaplayalım. iç select kullanarak yapalım?
go
create view v_MusteriToplamKargo
as
select Customers.ContactName, (select sum(Freight) from Orders where CustomerID = Customers.CustomerID ) 'Toplam Kargo Bedeli' from Customers where ContactName like '%s%'
go
view çağıralım;
select * from v_MusteriToplamKargo
Burada “toplam kargo bedeli” sanal ismini verdiğimizde syntax hatası verir. Buna dikkat etmeliyiz.
NOT :
select * from sys.tables – Bütün tabloları liste halinde görmemizi sağlar..
select * from sys.views - Bütün view ları liste halinde görmemizi sağlar..
Not: daha önce yazılmış bir view da “alter” komutu ile değişiklik yapılabilir.
view ları çağıran komut;
select * from sys.views
örnek 3: sadece ‘Alphabetical list of products’ view ini çağıran view
go
alter view vViewleriGetirenKomut
as
select * from sys.views where name = 'Alphabetical list of products'
go
view çağıralım;
select * from vViewleriGetirenKomut
Arkadaşlar bu yazımızda SQL view oluşturmayı ve çağırmayı kısaca anlattık.
Başka bir yazımızda görüşmek üzere…