TOP

SQL Dersi 7. Veri işleme fonksiyonları

Çoğu programlama dilinde olduğu gibi SQL'in de veri işlemeye yönelik işlevleri vardır. SQL ifadelerinden farklı olarak, işlevlerin tüm DBMS türleri için standartlaştırılmadığını, yani veriler üzerinde aynı işlemleri gerçekleştirmek için farklı DBMS'lerin kendi işlev adlarına sahip olduğunu belirtmekte fayda var. Bu, bir DBMS'de yazılan sorgu kodunun diğerinde çalışmayabileceği ve bunun gelecekte dikkate alınması gerektiği anlamına gelir. Bu çoğunlukla metin değerlerini işlemek, veri türlerini dönüştürmek ve tarihleri değiştirmek için kullanılan işlevler için geçerlidir.


Çoğu DBMS standart bir dizi işlev türünü destekler:

  • Metin işleme için kullanılan metin işlevleri (karakterlerin bir kısmını metinden çıkarmak, metnin uzunluğunu belirlemek, karakterleri büyük veya küçük harfe dönüştürmek...);
  • Sayısal işlevler. Sayısal değerler üzerinde matematiksel işlemler gerçekleştirmek için kullanılırlar;
  • Tarih ve saat fonksiyonları (tarih ve saat işlemleri gerçekleştirilir, tarihler arasındaki süre hesaplanır, tarihlerin doğruluğu kontrol edilir vb.);
  • İstatistiksel fonksiyonlar (maksimum/minimum değerlerin hesaplanması, ortalama değerler, miktar ve toplamın hesaplanması için...);
  • Sistem işlevleri (DBMS, kullanıcı vb. hakkında çeşitli türde hizmet bilgileri sağlar).
  • 1. Metin işleme için SQL işlevleri

    MS Access'deki SQL uygulaması, metin işleme için aşağıdaki işlevlere sahiptir:

    Islev Tanım
    Left() Metindeki karakterleri soldan seçer
    Right() Sağdaki metindeki karakterleri seçer
    Mid() Metnin ortasındaki karakterleri seçer
    UCase() Karakterleri büyük harfe dönüştürür
    LCase() Karakterleri küçük harfe dönüştürür
    LTrim() Metnin solundaki tüm boş karakterleri kaldırır
    RTrim() Metnin sağındaki tüm boş karakterleri kaldırır
    Trim() Metnin her iki tarafındaki tüm boş karakterleri kaldırır

    UCase() fonksiyonunu kullanarak ürün adlarını büyük harfe çevirelim:

    Run SQLSELECT Product, UCase(Product) AS Product_UCase 
    FROM Sumproduct
    

    LEFT() işlevini kullanarak metindeki ilk üç karakteri vurgulayalım:

    Run SQLSELECT Product, LEFT(Product, 3) AS Product_LEFT 
    FROM Sumproduct
    

    2. Sayıları işlemek için SQL işlevleri

    Sayı işleme fonksiyonları, sayısal veriler üzerinde matematiksel işlemler gerçekleştirmek için tasarlanmıştır. Bu işlevler cebirsel ve geometrik hesaplamalar için tasarlandığından tarih ve saat işleme işlevlerine göre çok daha az kullanılırlar. Ancak sayısal işlevler, SQL'in tüm sürümlerinde en standartlaştırılmış işlevlerdir. Sayısal fonksiyonların listesine bakalım:

    Islev Tanım
    SQR() Belirtilen sayının karekökünü döndürür
    ABS() Bir sayının mutlak değerini döndürür
    EXP() Belirtilen sayının üssünü döndürür
    SIN() Belirtilen açının sinüsünü döndürür
    COS() Belirtilen açının kosinüsünü döndürür
    TAN() Belirtilen açının tanjantını döndürür

    Ana özelliklerden yalnızca birkaçını listeledik, ancak ayrıntılı açıklamalarla birlikte desteklenen özelliklerin tam listesi için her zaman DBMS belgelerinize başvurabilirsiniz.

    Örneğin Amount sütunundaki sayıların karekökünü elde etmek için SQR() fonksiyonunu kullanarak bir sorgu yazalım:

    Run SQLSELECT Amount, SQR(Amount) AS Amount_SQR 
    FROM Sumproduct
    
    MySQL, bir sayının karekökünü almak için SQRT() işlevini kullanır.

    3. Tarih ve saat işleme için SQL işlevleri

    Tarih ve saat işleme fonksiyonları en önemli ve en sık kullanılan SQL fonksiyonları arasındadır. Veritabanlarında tarih ve saat değerleri özel bir formatta saklandığından ek bir işleme gerek kalmadan doğrudan kullanılamaz. Her DBMS'nin tarihleri işlemek için kendi işlevleri vardır ve bu da ne yazık ki bunların diğer platformlara ve SQL uygulamalarına aktarılmasına izin vermez.

    MS Access'de tarih ve saati işlemeye yönelik bazı işlevlerin listesi:

    Islev Tanım
    DatePart() Tarihin bir kısmını döndürür: yıl, çeyrek, ay, hafta, gün, saat, dakika, saniye
    Year(), Month() Sırasıyla yılı ve ayı döndürür
    Hour(), Minute(), Second() Belirtilen tarihin saatini, dakikasını ve saniyesini döndürür
    WeekdayName() Haftanın gününün adını döndürür

    DatePart() fonksiyonunun nasıl çalıştığına dair bir örneğe bakalım:

    SELECT Date1, DatePart("m", Date1) AS Month1 
    FROM Sumproduct
    

    DatePart() fonksiyonu, tarihin gerekli kısmını görüntülememize izin veren ek bir parametreye sahiptir. Örnekte ay sayısını gösteren "m" parametresinin değerini kullandık (aynı şekilde yılı - "yyyy", çeyreği - "q", günü - "d", hafta - "w", saat - "h" , dakika - "n", saniye - "s" vb.).

    4. SQL istatistiksel fonksiyonları

    İstatistiksel işlevler, verileri örneklemeden hazır hale getirmemize yardımcı olur. Bu işlevlere sahip SQL sorguları genellikle çeşitli raporları analiz etmek ve oluşturmak için kullanılır. Bu tür seçimlere örnek olarak; bir tablodaki satır sayısının belirlenmesi, belirli bir alan için değerlerin toplamının elde edilmesi, tablonun belirtilen sütununda en büyük/en küçük veya ortalama değerin aranması verilebilir. Ayrıca istatistiksel fonksiyonların, yazılı olarak herhangi bir özel değişiklik yapılmaksızın tüm DBMS tarafından desteklendiğini de not ediyoruz.

    DBMS Access'deki istatistiksel işlevlerin listesi:

    Islev Tanım
    COUNT() Bir tablo veya sütundaki satır sayısını döndürür
    SUM() Bir sütundaki değerlerin toplamını döndürür
    MIN() Bir sütundaki en küçük değeri döndürür
    MAX() Bir sütundaki en büyük değeri döndürür
    AVG() Bir sütundaki ortalama değeri döndürür

    4.1 COUNT() işlevinin kullanımına ilişkin örnekler

    Tablodaki tüm satırların sayısını döndürür:

    Run SQLSELECT COUNT(*) AS Count1 
    FROM Sumproduct
    

    Ürün alanındaki boş olmayan tüm satırların sayısını döndürür:

    SELECT COUNT(Product) AS Count2 
    FROM Sumproduct
    

    İki sorgu arasındaki performans farkını göstermek için Ürün sütunundaki bir değeri kasıtlı olarak kaldırdık.

    4.2 SUM() işlevinin kullanımına ilişkin örnekler

    Run SQLSELECT SUM(Quantity) AS Sum1 
    FROM Sumproduct 
    WHERE Month = 'April'
    

    Bu talebimizle Nisan ayında satılan toplam mal tutarını görüntülemiş olduk.

    Run SQLSELECT SUM(Quantity*Amount) AS Sum2 
    FROM Sumproduct
    

    Gördüğünüz gibi istatistiksel fonksiyonlarda standart matematiksel operatörleri kullanarak birden fazla sütun üzerinde hesaplamalar da yapabiliyoruz.

    4.3 MIN() işlevini kullanma örneği

    Run SQLSELECT MIN(Amount) AS Min1 
    FROM Sumproduct
    

    4.4 MAX() işlevini kullanma örneği

    Run SQLSELECT MAX(Amount) AS Max1 
    FROM Sumproduct
    

    4.5 AVG() fonksiyonunun kullanımına örnek

    Run SQLSELECT AVG(Amount) AS Avg1
    FROM Sumproduct