Makale Özeti

Merhaba Sevgili Arkadaşlar, Bu gün sizlere SQL Server VIEW yapısından bahsedeceğim.VIEW nedir ve nasıl yaratılır.Performans açısından bize zararı olur mu ?

Makale

View ler veritabanına zararı olmayan objelerdir.Hatta sorgulamalarda daha hızlı sonuca ulaşılabilmesini sağlıyor yani doğru kullanılması halinde bizi birçok yükten kurtaracak olan veritabanı elemenlarıdır..Tabi herşeyden önce ne yaptığımızı bildiğimiz sürece. View’ler bir veya birden fazla tablodan istenilen verilerin bir arada sunulmasını sağlayan sorgulardır.Sanal bir tablo olarak da düşünebilirsiniz aslında.Viewlar veri saklamazlar sadece istenen veriye ulaşılacak yolu kullanarak verileri kullanıcıya sunarlar. VIEW ‘lerin Başlıca Yararları; -          Bir veya daha fazla tablo üzerinde çalışırken karışık ve karmaşık query lerimizin sonuçlarını bir tablo halinde tutup bunların üzerinde de istediğimiz filtrelemeleri hızlı bir şekilde çözümlememizi sağlar. -          Veri  ulaşımında performansı arttırmak.Yani daha hızlı ve performanslı ulaşım. -          Veri  ulaşımını sınırlamak ve kontrol altında tutmaya yarar. Aslında ilk maddem de sizlere diğer maddeleride bir nevi açıklamış oldum. Şimdi VIEW nasıl oluşturulur? Bunu görelim. Her zaman ki gibi ilk önce test database imzi ve tablolarımızı oluşturuyoruz.


CREATE DATABASE SQLTURKIYE_VIEWS_DB

USE SQLTURKIYE_VIEWS_DB
CREATE TABLE SQLTURKIYE_TEST1
(
	Id INT IDENTITY(1,1),
	Name			VARCHAR(50),
	Surname		VARCHAR(60),
	Identity_Number CHAR(11)
)

CREATE TABLE SQLTURKIYE_TEST2
(
	Id				INT IDENTITY(1,1),
	Adress			VARCHAR(50),
	Phone		CHAR(10),
	E_Mail VARCHAR(50),
	JOB VARCHAR(50),
	Identity_Number CHAR(11)
)

insert INTO SQLTURKIYE_TEST1 VALUES
('Özgür','Özeren','11111111111')
 ,('Önder','Özeren','22222222222')
 ,('Yusuf','Kahveci','33333333333')

insert INTO SQLTURKIYE_TEST2 VALUES ('ISTANBUL','9999999990','info@sqlturkiye.com','Advisor',11111111111)
									   ,('SAMSUN','8888888880','info@sqlturkiye.com','Student',22222222222)
									   ,('RİZE','7777777770','yusuf@ysfkhvc.com','Database Administrator',33333333333)


Daha sonra ise , Mesleği Student olmayanları iki tabloyu birleştirerek getiren basit bir sorgu çekelim.  


SELECT st.Identity_Number,st.Name,st.Surname,st2.E_Mail,st2.Phone,st2.Adress
 FROM SQLTURKIYE_TEST1 st INNER JOIN SQLTURKIYE_TEST2 st2 ON st.Identity_Number=st2.Identity_Number
WHERE JOB<>'Student


Şimdi biz bu işlemi programımızın farklı bölümlerinde kullanmak istersek ki  bu basit bir yapı bunun onlarca tablo ile birleşip farklı filtreler uyguulandığını düşünürsek ki view ın mantığını daha iyi kavramış oluruz. Peki biz bu yapımızı VIEW yani tablo haline getirmek istersek;


CREATE VIEW SQLTURKIYE_TEST_VIEW (Identity_Number,NAME,Surname,E_Mail,Phone,Adress)
 AS
SELECT st.Identity_Number,st.Name,st.Surname,st2.E_Mail,st2.Phone,st2.Adress
FROM SQLTURKIYE_TEST1 st INNER JOIN SQLTURKIYE_TEST2 st2 ON st.Identity_Number=st2.Identity_Number
WHERE JOB<>'Student'


Yukarıdaki sorgu sonucu artık bizim SQLTURKIYE_TEST_VIEW adında bi sanal tablomuz oldu.Biz bu tablo üzerinde istediğimiz gibi oynama yapabilir istediğimiz şekilde sorgulamalar gerçekleştirebiliriz.Tablomuza Select işlemini uygulayacak olursak önümüze aşağıdaki ekran gelecektir. Gördüğünüz üzere VIEW oluşturuken çektiğimiz query artık bir tablo halinde karşımızda. VIEW’lerimiz üzerinde de,istediğimiz şekilde filtrelemeler yapabiliriz.Örneğin; Sadece İsmi Yusuf olanları çekmek isteyelim tablomuzdan.

SELECT * FROM SQLTURKIYE_TEST_VIEW WHERE NAME='Yusuf'


Kısa ve öz olrak size VIEW yapısını anlatmaya çalıştım.Aklınıza takılan sorularınızı SQL TÜRKİYE Destek formunda sorabilirsiniz.  



Saygılarımla

Yusuf KAHVECİ

Database Administrator

                                                    (İzin Alınmadığı Sürece Makalelerin Yayınlanması Yasaktır! )