MSSQL’de View Kullanımı (Create View, Alter View, Drop View, Encryption)



Bu yazımda View nedir, nasıl oluşturulur(Create view), nasıl güncellenir(Alter view) ve nasıl silinir (Drop view) giriş seviyesinde bilgi vereceğim.

View Nedir?

SQL de,  View temel olarak sanal tablo(geçici ile sanal tablo farklı kavramlar lütfen karıştırmayın) diye geçiyor. Satır ve sütunları olan gerçek tablo gibidir. İçerisinde sadece SQL Fonksiyonlarını, Join, Group By ve Where ifadelerini kullanabilirsiniz. Yapamadıkları yaptıklarından daha az bu yapamadıklarını yazımın en son bölümünde yer vereceğim. (örnekleri hayali tablolar üzerinde anlatacağım). SQL Query açıp aşağıdaki örnek kodları yazıp daha sonra execute,kısayolu f5, ettikten sonra çalışmış olacaktır.

View Oluşturma (Create View)

Oluşturulan View ler veritabanınız içerisinde “Views” seçeneceğinin altında yer almaktadır. Oluşturalım:

CREATE VIEW OnSekizYasindanBuyukKullanicilar

AS

SELECT kullaniciAdi, YasadigiYer,Yas FROM Kullanicilar WHERE Yas>17

Kullanımı:

Aynı tabloyu nasıl kullanıyorsan View ide öyle kullanacağız.

Select * From OnSekizYasindanBuyukKullanicilar Where kullaniciAdi like ‘A%’

Şifreli View Oluşturma (With Encryption)

CREATE VIEW SifreliView

With Encryption

AS

SELECT kullaniciAdi, YasadigiYer,Yas FROM Kullanicilar WHERE Yas<17

Not: Şifrelediğiniz View’in kodlarını kendimizde göremeyiz yani Design sayfası bulunmamaktadır. Bunu unutmayı o yüzden yedek almakta fayda var kodlarınızı. Ayrıca proc, function, trigger larıda şifreleyebilirsiniz.

View Güncelleştirme (Alter View)

Güncelleştirmek için alter ifadesinden sonra güncelleştirmek istediğimiz türü seçiyoruz burada view oluyor ve en son olarak View adını yazıyoruz. Kodları değiştirten sonra çalıştırmayı unutmayın.

ALTER VIEW OnSekizYasindanBuyukKullanicilar

AS

SELECT kullaniciAdi, Yas FROM Kullanicilar WHERE Yas>17

View Silme (Drop View)

Aslında Create, Alter, Drop SQL ifadeleri olduğu için tablo, view, fonsiyon, procedur işlemlerinde aynı şekide kullanılıyor, yani view e özel durum söz konusu değil.

DROP VIEW OnSekizYasindanBuyukKullanicilar

View larda Ne Yapılmaz

Yukarıda söylediğim gibi aslında view lerin yapamadıkları daha fazla.

  • Order  By kullanamazsınız.
  • İsimsiz kolon bırakamazsınız. Örneğin Sum fonsiyonunu kullanacaksınız As ile kesin bir isim vermek zorundasınız.
  • Birden fazla sorgu yazamazsınız yani sadece bir select ile başlayan bir cümle yapabilirsiniz.
  • T-SQL kullanamazsınız
  • Insert, Update veya Delete kullanamazsınız
  • Herhangi bir parametre yollayamazsınız.

View leri özellikle ben kullanırken join li yapılar ile tabloları birleştiriyor işime yarayacağını düşündüğüm bilgileri alıyorum ve daha sonra bu view i kullanarak işlemler yapıyorum. Bu açıdan oldukça kullanışlı. Kullandıkça alışabilirsiniz.

Umarım faydalı bir yazı olmuştur sonraki yazımda, Procedure oluşturmayı anlatacağım.

Advertisement

, , ,

  1. #1 by Levent on February 1, 2012 - 1:06 pm

    Gayet güzel,anlaşılır, açıklayıcı bilgiler…

  2. #2 by orhan kanat on May 7, 2012 - 6:56 am

    çok açık view i oluşturma güncelleme silme Teşekkürler

  3. #4 by ashdasd asf on August 9, 2012 - 11:32 am

    cidden cok güzel anlatılmıs t.edrim

  4. #6 by mrt on October 14, 2013 - 7:34 am

    Merhaba
    bir view in parametreli olması mümkün mü?
    yukaridaki örneklerde as den sonra bildiğimiz sql select fadeleri var.
    bir asp.net sql data source da tablo seçip advandec bölümünde insert,delete,update basınca bile
    aspx dosyasında sql datasource içine bakarsanız parametreler var.bunu viewde yapmak istiyorum.
    söz gelimi, sqldatasource un kendi koyduğu delete sourgusunda bile ve bunu create view isim as
    den sonra yazında hata veriyor

  5. #8 by mrt on October 14, 2013 - 7:38 am

    bakarsanız bunları view oluşturmada kullanılamamakta. bunları view yapmak sterseniz, declare ediniz uyarısı gelmekte. Bunu nasıl yaparı?
    SelectCommand=”SELECT * FROM [Kategoriler] WHERE ([KategoriId] = @KategoriId)”

    InsertCommand=”INSERT INTO [Kategoriler] ([KategoriAdi]) VALUES (@KategoriAdi)”
    DeleteCommand=”DELETE FROM [Kategoriler] WHERE [KategoriId] = @KategoriId”
    UpdateCommand=”UPDATE [Kategoriler] SET [KategoriAdi] = @KategoriAdi WHERE [KategoriId] = @KategoriId

  6. #10 by Kübra on October 4, 2018 - 11:28 am

    Oluşturduğumuz bu viewleri asp.net core mvc de bir table olarak kullanabilir miyiz. Yani datacontext sınıfınfa dbset ile bağlayabilir miyiz

    • #11 by Mahmut Can Sozeri on October 9, 2018 - 7:15 am

      Tabiki kullanılabilir. DB katmanı ayrı, önyüzde kullandığınız teknoloji ayrı.

  7. #12 by Erhan on October 8, 2018 - 11:31 pm

    Pek yorum atmayı seven biri değilim ama yorum atmadan geçemeyeceğim, gerçekten çok kolay anlaşılır şekilde anlatmışsınız. Teşekkürler…

    • #13 by Mahmut Can Sozeri on October 9, 2018 - 7:14 am

      Merhaba, çok teşekkürler Erhan Bey. Sağolun. Faydalı olmasına sevindim.

  8. #14 by mhsn12 on January 24, 2019 - 1:10 pm

    Teşekkürler emeğine sağlık

  1. MSSQL’de Procedure (Stored Procedure) Kullanımı (Create Procedure, Alter Procedure, Drop Procedure) « Mahmut Can Sözeri
  2. sql de View nedir?
  3. MSSQL’de View Kullanımı (Create View, Alter View, Drop View, Encryption)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: