User Defined Function nedir? Türleri nelerdir?
User Defined Function
Kullanıcı Tanımlı Fonksiyonlar(User Defined Function) parametreli parametresiz olarak birçok dilde aslında mevcuttur, biz T-SQL dilindeki fonksiyonlardan bahsedeceğiz, Kullanıcı Tanımlı Fonksiyonlar, SQL fonksiyonları dışında kullanıcılar tarafından oluşturulan ilişkisel veri tabanı nesneleridir. SQL Server 2000 ile birlikte gelen Kullanıcı Tanımlı Fonksiyon oluşturma işlemi, tek bir değer veya tablo döndürmek için kullanılabilir. Bu tür fonksiyonlar CLR (Common Language Runtime – Ortak Dil Çalıştırma Platformu) ya da T-SQL (Transact-SQL) temelli olarak yazılabilir. Fonksiyonlarda tanımlanan bir değişken, fonksiyon içerisinde değiştirilemez yani bütün parametreler oluşturulan fonksiyonda belirtilmek zorundadır. Oluşturulan fonksiyonlara erişmek için SQL Server üzerinde, fonksiyonun tanımlandığı database seçildikten sonra Programmability-> Functions yolu izlenir. Üç çeşit kullanıcı tanımlı fonksiyon vardır;
Tablo Döndüren Fonksiyonlar (Table-valued Functions):
Sayısal değerli fonksiyondan tek farkı döndürdüğü verinin tablo olmasıdır. Viewlerle büyük benzerlikler içerir ancak farklı olarak dışarıdan parametre alabilirler.
CREATE FUNCTION fonksiyonAdi (parametre) RETURNS Tablo AS Sorgu GO
Sayısal Değerli Fonksiyonlar (Scalar-Valued Functions):
Tek değer döndüren fonksiyon çeşididir. Bazı durumlarda kullanıcıların tercih ettiği bir tiptir. Tek değer döndürmek ile anlatılmak istenilene GETDATE() sistem fonksiyonu örnek olabilir. GETDATE() fonksiyonu çalıştırıldığında sisteminin zaman ve saatini döndüren yani tek değer döndüren bir sayısal değerli sistem fonksiyonudur.
CREATE FUNCTION fonksiyonAdi(parametre) RETURNS int AS Begin Sorgu RETURN int End Go
Aggregate Fonksiyonlar:
Kullanıcı tanımlı fonksiyonların en az kullanılan türüdür. Sistem fonksiyonları altında da Aggregate fonksiyonları vardır. Min(), Max(), Sum() gibi fonksiyonlar bunlara örnektir. Ancak Sistem Aggregate fonksiyonları yapılacak bir işlem için yeterli değil ise, kullanıcı tanımlı aggregate fonksiyon tanımlanır.
Fonksiyon | Açıklama |
AVG() | Ortalama değeri döndürür |
COUNT() | Satır sayısını döndürür |
FIRST() | İlk değeri döndürür |
LAST() | Son değeri döndürür |
MAX() | En büyük değeri döndürür |
MIN() | En küçük değeri döndürür |
ROUND() | Sayısal bir alanı belirtilen ondalık sayıya yuvarlar |
SUM() | Toplamı döndürür |