1 Nisan 2009 Çarşamba

T-SQL

DECLARE : Adından da anlaşıldığı gibi bildirmek. T-sql de kullanılacak değişkenler ,cursor gibi özel yapılar vb. bildirmek ve tanıtmak için kullanılır.

DECLARE @Degisken1 varchar(50)

DECLARE @Degisken2 datetime

SET : Değişkenlere değer atama için kullanılır.

DECLARE @Degisken1 varchar(20)

SET @Degisken1 = �www.csharpNedir.com�

CURSOR : Çeşitli sql ifadeleri sonucunda elde edilen veri kümesi üzerinde ileri geri ilerlemek için tanımlanan yapılardır. Bu konu ile ilgi sitemizde makale mevcut.Okumak için tıklayınız.

Fonksiyonlar (Functions) : Belli bir sonucu geri döndürmek için yapılmış bir veya birden fazla yerde kullanılan yapılardır. Programcılıkta kullanmış olduğumuz fonksiyonlar ile aynı mantıktadırlar.

CREATE FUNCTION FonksiyonAdı (Parametreler AS VeriTipi )
RETURNS GeriDönecekDeğerin VeriTipi
AS
BEGIN
Fonksiyonda yapılacak işer
RETURN GeriDönenDeğer
END

Örnek : Bu örneğimiz SQL cümlelerinde genellikle sorun çıkaran NULL değerleri. Eğer sql cümlesinde iki değer toplarken değerlerden biri NULL ise sonuç NULL olur. Bu funksiyonumuzda değişkenin değerinin NULL olup olmamadığının kontrolunu yapar.

Örnek : Örneğimiz TahsilatToplam tablosunda bir abonenin dönem dönem harcamış olduğu su miktarının bedeleri toplamlarını bulunmakta. Fonksiyonumuz abonenin toplam tahsil edilmiş borcunu göstermekte. RETURNS ifadesi fonksiyonun geri dönüş değerini , DECLARE ifadesi de kullanılan değişkeni bildirir. Ayrıca burda ilk yaptığımız fonksiyonu yani checkNULL fonksiyonunu da kullandık. Böylece Donem değerlerinin NULL olup olmadığının kontrolunu de yapmış olduk.

Saklı Yordamlar(Stored Procedurs) : Belli bir işlemi gerçekleştirmek için oluşturulan sql ifadeleri topluluğu . Örneğin projenizde sql ifadelerin olmasını istemiyorsanız ve bütün işlemleri veritabanında yapmak istiyorsanız saklı yordamları kullanabilirisinz. Belli parametreler gönderilerek kayıt ekleme, güncelleme, silme veya veriyi listeleme amaçlı saklı yordamlar oluşturabilirisiniz. Belli giridi ve çıktı parametreleri olduğu için kullanılan projenin güvenliliğini artırırlar. Ayrıca istemciden sunucuya uzun sql cümlelerinin gitmesindense saklı yordamın adı ve gerekli parametrelerinin gitmesi ağ trafiğini de azaltmış olur.

CREATE PROCEDURE (Parametreler VeriTipi , DönüşDeğeriParametreler VeriTipi OUTPUT)
AS
Fonksiyonda yapılacak işler

OUTPUT parametreleri procedur çalıştıktan sonra geri dönüş değeri olan parametrelerdir. Ve parametre tanımlanırken @ karakterinde ikitane yazılarak oluşturulur. @@Param gibi.

Örnek : Stored procedurlerin sık kullanıldığı yerlerden biri de tabloya veri ekleme, güncelleme yada silme işlemleri. Aşağıdaki örneğimiz SuTahakkuk tablosuna yeni kayıt ekleme olacak. Kaydedilecek değerler saklı yordama parametre olarak teker teker gönderilecektir.

Saklı yordamlar EXECUTE veya EXEC komutları ile çalıştırılırlar.

EXECUTE sp_InsSuTahakkuk (1, �1522�, �1�, 145, 156, 120, 150)

EXEC sp_EmlakBilgileri 2004

Örnek : Aşağıdaki örneğimiz de işlemler sonucunda dönüş değeri olarak tablo kullanan bir saklı sordam olacak. Ayrıca bu saklı yordamımızda Cursor oluşturma ve kullanımına ilişkin güzel bir örnek. Bu örneğimiz farklı tablolarda bulunan bilgileri birleştirip tek bir tablo oluşturan bir procedur oldu. EmlakBina tablosunda sadece ilgili tabloların Id�leri olan SahipSicil, Mahalle, Sokak bilgilerinin birleştirilip görsel açıdan daha kullanıştı bir tablo halenine getirilmesi.

Tetikleyiciler (Triggers) : Tetikleyiciler sadece tablolarda veya görünümlerde(views) Insert, Update ve Delete komutları çalıştırılırken başka işlerin yapılması için tanımlanan sql cümleleridir. Mantık olarak saklı yordamlara benzerler. Fakat bunlar ilişkili oldukları tablo veya gönünümde ilgili işlem gerçekleştirilirken otomatik olarak çalışmalarıdır. T-SQL iki farklı tetikleyici vardır; bunlar AFTER ve INSTEAD OF tetikleyicileridir. AFTER tetikleyiciler ilgili işlemleri gerçekleştirildikten hemen sonra yapılırlar. INSTEAD OF tetikleyicileri ise işlem yapılırken araya girip öncesinde veya sonrasında başka işlemleri yapabilme yeteneğine sahiptir.

CREATE TRIGGER TetikleyiciAdı ON TabloAdi veyaViewAdi (FOR AFTER , INSTEAD OF) veya (FOR {INSERT, UPDATE, DELETE})
BEGIN
Tetikleyicide yapılacak işler
END

Örnek : Örneğimiz SuTahakkuk tablosuna veri kaydedilirken Tahsilat toplam tablosuna ilgili HemsehriId ve döneme ait toplam tutarın değerini güncellemek olsun.

Bu makalemizde T-SQL hakkında biraz bilgi vermiş olduk. Yukarda yapmış olduğumuz örnekleri farklı şekillerde yorumlayarak çeşitli senaryolara oluşturabilirsiniz.

Kaynak : SQL Server Books Online

Hiç yorum yok: