Görüntü (View), Store Prosedür ve Fonksiyonlar

Görüntü Kavramı (VIEW)

Görüntüler (view), select ifadeleri ile oluşturulmuş sanal tablolardır.

Temel tablonun daraltılmış bir hâlidir. Sadece tanımda belirtilen koşulu sağlayan satırları ve yine tanımda belirtilmiş olan sütunları ve varsa hesaplatılmış sütunları içerir.

Normal tablolar gibi select sorgularına, join ifadelerine dâhil edilebilir.

Tablolarda olduğu gibi ‘SELECT * FROM görüntü_adı’ şeklinde sorgular çalıştırabiliyor olsak da gerçekte böyle bir tablo yoktur, görüntüler sadece kaydedilmiş sorgulardan ibarettir.

Görüntü tanımlarken sütunlar için veri tipi belirtilmez, ilgili sütun temel tablo tanımında hangi veri tipi ile tanımlanmış ise görüntüde de aynı veri tipi ile bulunur.

Görüntü tanımlamak için 'CREATE', tanımını değiştirmek için 'ALTER', görüntüyü silmek için 'DROP' komutu kullanılır.

Store Prosedür Kavramı (STORED PROCEDURE)

Store prosedürler birçok programlama dilinde var olan fonksiyon yapılarına karşılık gelir.

Store prosedür tanımı içinde yapacağımız değişiklik store prosedürün kullanıldığı her yere yansıyacağından dolayı kod yazmayı/programlamayı kolaylaştırmaktadır.

Store prosedürler ilk defa çalıştırılırken ayrıştırma, derleme ve çalıştırma aşamalarının hepsi gerçeklenir, daha sonraki çağrılmalarında ise sadece üçüncü aşama olan çalıştırma (executing) aşaması gerçeklenir. Çünkü derleme aşamasından sonra oluşan çalışma planı hafızada (RAM) saklanır ve yeniden oluşturulmasına gerek kalmaz. Store prosedürler bu yüzden hızlı çalışır.

Store prosedür tanımlamak için 'CREATE', tanımını değiştirmek için 'ALTER', silmek için 'DROP' komutu kullanılır.

Store prosedürler parametre alabilir. Parametreler, girdi parametre ve çıktı parametre şeklinde ikiye ayrılır. Çıktı parametreler üzerinden prosedür dışına veri aktarılmış olur. Girdi parametreler için varsayılan değer de atanabilir. SP çağrılırken böyle tanımlanmış parametreler yazılmazsa varsayılan değer ile çağrılır.

Return deyimi ile prosedür çağrıldığı yere veri döndürebilir.

Return deyimi prosedürü sonlandırmak için de kullanılabilir. SP içerisinde yapılmak istenen işlemler veya gönderilen parametreler ile ilgili kontroller yapıldıktan sonra devam edilemeyeceği anlaşıldığında SP return deyimi ile sonlandırılır.

Fonksiyon Kavramı

SQL Server açısından bakıldığında fonksiyonlar view (görüntü) ve Store prosedür (Saklı Yordam) kullanmanın avantajlarını kendi bünyesinde toplamıştır.

Fonksiyon içerisinde, store prosedür de olduğu gibi çeşitli T-SQL sorguları, if else yapıları vs. kullanılabilir ve fonksiyonlar da parametre alabilir. Fonksiyonun görüntüye benzer yönü ise select sorgularına dahil edilebilmeleridir.

Skaler fonksiyon geriye sadece tek bir değer döndürür, tablo fonksiyon ise geriye bir tablo döndürür.

Görüntü ve store prosedürlerde olduğu gibi fonksiyon tanımlamak için de 'CREATE', tanımını değiştirmek için 'ALTER', silmek için 'DROP' komutu kullanılır.

Fonksiyon içerisinde başka bir fonksiyon (veya aynı fonksiyon) çağrılabilir. Bu şekilde içiçe fonksiyon çağırmaya SQL 32. Seviyeye kadar müsaade etmektedir. Rekürsif bir fonksiyon veya SP yazılacağı zaman bu duruma dikkat edilmelidir.

SP içersinide fonksiyon çağrılabilir fakat fonksiyon içerisinde SP çağrılamaz.