Sql view nedir ?Öncelikle view hakında biraz bahsetsek view sanal olarak tablolama, Peki nasıl bir tablolama sanal olarak derseniz. Şu şekilde bahsedim. Elimde 2 tane tablom var bunlardan biri sistemolsun diğeri kullanıcı ve bu tablomun içeriğide dolu olsun ve ben bu içeriklerden bir kaç gerekli kolonu başka bir yerde kulanim. Evet bunu sql view olmadan procedureler yardımı ile de yapmak mümkün veya tekrar baştan bir tablo oluşturur istenen kayıtları onun içine alıcak bir algoritma yazılır ama neden bu kadar ugraşalık ki işte view bize sagladığı en büyük özelik bu . Zaman kazandırması Verileri taşıma gereği duymamamız ve Tek bir tablo özeliği göstermesi. Peki nasıl kulanılır öncelikle 2 tane tablo oluştrucam kendime ila 2 tane olucak diye bir kuralda yok sadece hangi tablodan hangi kolonu aldığınızı göstermenizde yeterlidir.
Sistem tablom
CREATE TABLE Sistem([ID] [int] IDENTITY(1,1) NOT NULL,[Sistem_bilgi] [varchar](250) NULL,[kontrol] [varchar](100) NULL,[no] [int] NULL) ON [PRIMARY]GO
Burda sistem içeriği tutan bir kaç ögem olsun varsayalımINSERT INTO Sistem([Sistem_bilgi],[kontrol],[no])VALUES(‘kayıt altına alındı’,’Kontrol edildi’ ,’1′),(‘kayıt altına alındı1′,’Kontrol edildi1′ ,’2’),(‘kayıt altına alındı2′,’Kontrol edildi2′ ,’3’)GO
Aynı şekilde Kullanıcıtablom
CREATE TABLE Kullanicilar([ID] [int] IDENTITY(1,1) NOT NULL,[Kullanici_Bilgi] [varchar](250) NULL,[Notu] [varchar](450) NULL,) ON [PRIMARY]GO
ve bunun içinde bir kaç bilgim olsunINSERT INTO Kullanicilar([Kullanici_Bilgi],[Notu])VALUES(‘Kullanici_Bilgi’,’Kullanici_notu’) ,(‘Kullanici_Bilgi2′,’Kullanici_notu2’) ,(‘Kullanici_Bilgi3′,’Kullanici_notu3’)GO
peki sql tablollarımı ve kayıtları oluşturduktan sonra günün birinde kayıt altına tutum verilerden sistem bilgisi ile kulanıcı notları içeren bir tabloya ihtiyacım olursa. Napıcam işte procedure veya yeni tablo oluştur içine verileri gir çooookkk uzun olur. Bunun yerine View kulanırsak hem kayıtlar aynı yerinde kalır hemde alandan tasaruf ve aynı zamanda performans kazanırız.kontrol view oluşturalım
CREATE VIEW kontrolASSELECT Kullanicilar.Notu, Sistem.Sistem_bilgiFROM Kullanicilar CROSS JOINSistemGO
işte bu kadar iki tablomuzdan verileri çektik ve yeni bir tablo oluşturduk. İsterseniz son durumada bakabilirsiniz tabloların nerdeyse tüm özelikleri kulanılabilmektedir.SELECT [Notu],[Sistem_bilgi] FROM kontrol GO