SQL SERVER VIEW YAPISI

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 ?

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. View ‘lar 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
GO

USE SQLTURKIYE_VIEWS_DB
GO
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','[email protected]','Advisor',11111111111)
                     ,('SAMSUN','8888888880','[email protected]','Student',22222222222)
                     ,('RİZE','7777777770','[email protected]','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 uygulandığı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.

sqlVIEW1-300x51

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'

VIEW2-300x51

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.

ykkrtvzt

Leave a Reply

Your email address will not be published. Required fields are marked *