SQL’de Fonksiyon

Rukiye Demirci
3 min readDec 23, 2020

--

Fonksiyon Nedir?

Matematiksel olarak en basit anlamda değer kümesinden bazı elemanların görüntü kümesine giderken belli bir kurala göre dönüşüme uğramasına fonksiyon denir.

SQL’de de fonksiyonu işlem yapmak istediğimiz girdiyi yani değeri istediğimiz işlemi yaptırıp sonuç dönmesini veya oluşturmasını bekleriz.

SQL’de Neden fonksiyon kullanırız?

Sık kullandığımız sorguları veya işlemleri tek bir yerde erişmek için kullanırız. Karmaşık işlemleri uygulamak veya işlemek için kullanılırız.

Örneğin hangi müşterinizin ne kadar sipariş verdiğini ve bunlara göre en çok sipariş veren olduğunu bulmak için sürekli aynı kodu yazmak yerine bir fonksiyon yazarak istediğimiz zaman bu sorguyu kullanabiliriz.

SQL’de Fonksiyon Türleri Nelerdir?

SQL’de fonksiyonlar, Sistem Tanımlı Fonksiyon ve Kullanıcı Tanımlı Fonksiyon(UDF) olarak ikiye ayrılır.

Sistem Tanımlı Fonksiyonlar(System Defined Function): Bazı sorguların fonksiyonlar kullanmadan uygulanması zor olduğundan dolayı temel ve önemli işlemler için SQL SERVER ile birlikte gelen fonksiyonlara denir.

Kullanıcı Tanımlı Fonksiyon(User Defined Function): Sık kullanılan bir sorguyu daha kolay ve daha hızlı bir şekilde ulanmak için kullanıcının oluşturduğu fonksiyonlara denir.

Sistem tanımlı fonksiyonlar Scalar Fonksiyon ve Aggregate Fonksiyon olarak adlandırılır.

Scalar Fonksiyon: Sistemde tanımlı olarak gelen ve tek bir değer döndüren fonksiyonlara denir.

Aggregate Fonksiyon: SQL ile sistemin kendisinde var olan fonksiyonlardır. Örneğin AVG,SUM gibi fonksiyonlardır.

Kullanıcı Tanımlı Fonksiyonlar(UDF) sql server kullanıcı tarafından kendi ihtiyacına göre düzenlediği Fonksiyonlardır. Bu Scalar, Table Valued ve Multi Statement olarak üçe ayrılır.

Scalar Fonksiyon: Tek bir değer döndüren fonksiyonlara denir.

Örneğin bir firmanın toplam siparişini bulmak istiyorsunuz. Ve bununla ilgili raporlar yapmanız gerek. Bunu her seferinde kullanmak yerine bir fonksiyon yazıp kolayca ulaşabilir ve filtreleme işlemlerini rahatlıkla yapabilirsiniz.

SELECT * from [dbo].[TOTAL_ORDERS](1271,2010) şeklinde fonksiyonu çağırabiliriz.

Table Valued Fonksiyon: Tek seferde birden fazla veri döndüren fonksiyonlara denir. Bu fonksiyon bir parametre alır ama sonuç olarak bir tablo döndürür. Daha hızlı sonuçlar almak ve kalabalık işlemler olmaması için kullanabiliriz.

Örneğin Bir ürün bilgisi tablosu yapmak istiyoruz. Bunun sonucunda da bir tablo döndüreceğiz o yüzden bir Table Valued fonksiyonu kullanırız.

Eğer tek bir ürün için sorgulamak istersek aşağıdaki kodu kullanabiliriz.

ürün kodu 3028 olan ürünlerin bilgisini listeler.
Çıktısı

Eğer bütün ürünlerin ürün bilgini listelemek istersek aşağıdaki kodu kullanabiliriz.

Bütün ürünlerin ürün bilgilerini getiren kod
Çıktısı

Multi Statement Fonksiyon: Birden çok değişkenle tablo döndürdüğümüz bir fonksiyondur.

Örneğin istediğimiz bir aralıkta sipariş veren müşterileri bulmak için Multi Statement fonksiyonu kullanabiliriz.

Multi Statement Kod
Fonksiyonu Çağırmak İçin Kod

Elde ettiğimiz çıktı aşağıdaki gibidir.

--

--