SQL FONKSİYONLARI
Fonksiyon Nedir? Fonksiyonlar SQL’e bazı güçlü özellikler katan olanaklar olarak değerlendirilir. SQL fonksiyonları, aynen programlama dillerinde olduğu gibi, kullanıcıya bazı özel işlemleri ve hesaplamaları otomatik olarak sağlar. Çeşitli argümanları girdi olarak alıp, sonuç üreten hazır SQL bileşenidir. Kullanıcının fonksiyonun adını ve gerekli argümanları tanımlaması yeterlidir. Bu bilgilere dayanarak fonksiyon bir sonuç döndürür (üretir). Argüman ..n Argüman 2 Argüman 1 Fonksiyonlar Sonuç
SQL FONKSİYONLARI Tek satır fonksiyonları : Tablonun bir satırı için uygulanır. 1. Karakter fonksiyonları 2. Sayısal fonksiyonlar 3. Tarih fonksiyonları 4. Dönüştürme fonksiyonları Çoklu satır fonksiyonları (Grup fonksiyonları): Bir grup satıra uygulanır.
Karakter fonksiyonları Karakter verilerini girdi olarak alan; karakter ya da sayısal değerler döndürebilen fonksiyonlardır. Access veritabanındaki kullanımları: LCASE: Karakterleri küçük harfe dönüştürür. UCASE: Karakterleri büyük harfe dönüştürür. CONCAT WİTH “&”: Katarları birleştirmek için kullanılır. MID: Bir katarın m.pozisyonundan itibaren n karakterinden yeni bir katar oluşturur. LEN: Bir katarın içerdiği karakter sayısını döndürür.
Karakter fonksiyonları PERSONEL tablosunda personel isimlerini küçük harfe dönüştürmek için: SELECT LCASE(ADI) AS İSİMLER FROM PERSONEL WHERE BÖLÜM_NO=10; ORACLE veritabanında LCASE yerine LOWER PERSONEL tablosunda personel isimlerini büyük harfe dönüştürmek için: SELECT UCASE(ADI) AS İSİMLER FROM PERSONEL ORACLE veritabanında UCASE yerine UPPER
Karakter fonksiyonları PERSONEL tablosunda adı ve soyadı sütunlarındaki veriyi birleştirip tek sütun olarak göstermek için: SELECT ADI & SOYADI AS ADI_SOYADI FROM PERSONEL; ORACLE veritabanında & yerine CONCAT Personel isimlerinin kaç karakterden oluştuğunu bulmak için: SELECT ADI, LEN(ADI) AS İSİMLER FROM PERSONEL; ORACLE veritabanında LEN yerine LENGTH Personel isimlerinin ilk üç harfini görmek için: SELECT MID(ADI,1,3) AS İLK_UC_HARFİ FROM PERSONEL; ORACLE veritabanında MID yerine SUBSTR
SAYISAL FONKSİYONLAR Sayısal veriler üzerinde çeşitli işlemleri gerçekleştirmek üzere özel fonksiyonlar bulunmaktadır. Sayısal fonksiyonlar sayısal verileri alır ve yine sayısal sonuçlar üretirler. ROUND: Sayısal değerleri yuvarlatmak amacıyla kullanılır. TRUNC: Sayısal değeri belirtilen ondalığa göre budamak amacıyla kullanılır (Sadece ORACLE’da çalışır). MOD: İki sayısal değerin, m ve n’nin birbirine bölümünden elde edilen kalanı döndürür.
Sayısal Fonksiyonlar PERSONEL tablosundan görevi MEMUR olanlar için, aylık ücretleri 30’a bölerek günlük ücretleri bulmak ve yuvarlamak için: SELECT ADI, ÜCRET AS AYLIK, ROUND(ÜCRET/30) AS GÜNLÜK FROM PERSONEL WHERE GÖREVİ=“MEMUR”; Personelin günlük ücretini hesaplayan ve sonucu yuvarlamadan ondalık noktasından itibaren 2 ondalık haneye göre budamak için: SELECT ADI, ÜCRET AS AYLIK, ÜCRET/30 AS GÜNLÜK, TRUNC(ÜCRET/30,2) AS BUDANMIŞ_GÜNLÜK FROM PERSONEL; Personel ücretlerinin komisyonlarına oranını hesaplamak ve kalanı bulmak için: SELECT ADI, ÜCRET, KOMİSYON, MOD(ÜCRET,KOMİSYON) AS KALAN FROM PERSONEL;
TARİH VE SAAT FONKSİYONLARI NOW: O andaki sistem zamanını verir. SELECT Now(); DATEDIFF: İki tarih arasındaki farkı (gün, ay, yıl) verir. SELECT DateDiff('m',#12/17/2003#,#1/22/2004#); … ‘m’ olduğu için ay farkı DATEADD: Belli bir tarihin üzerine değer ekleyerek yeni bir tarih değeri üretir. SELECT DateAdd("yyyy",3,#11/22/2006#); … ‘yyyy’ olduğu için yıl ekleme DAY: Verilen tarih parametresinin gününü döndürür. SELECT Day(#11/22/2003#); MONTH: Verilen tarih parametresinin ayını döndürür. SELECT Month (#22/11/2003#); YEAR: Verilen tarih parametresinin yılını döndürür. SELECT Year (#22/11/2003#);
Dönüştürme fonksiyonları Karakter, sayısal ve tarih verilerinin birbirlerine dönüştürülmesi ve özellikle biçimlendirme işlemlerinde çeşitli fonksiyonlardan yararlanılır. CSTR: Tarih ve sayısal bilginin istenildiği gibi biçimlendirilerek karakter dizisine dönüştürülmesini sağlar. CINT: Bir katarın içerdiği sayısal değerlerin istenildiği gibi biçimlendirilerek sayısal veri türüne dönüştürmek için kullanılır. CDATE: Bir katarın içerdiği tarih verilerinin istenildiği gibi biçimlendirilerek tarih veri türüne dönüştürmek için kullanılır.
Dönüştürme fonksiyonları Personelin işe giriş tarihlerini MM/YY biçiminde elde etmek için: SELECT ADI, TO_CHAR(GİRİŞ_TAR,’MM/YY’) AS TARİH FROM PERSONEL; ORACLE veritabanında CSTR yerine TO_CHAR Personel ücretlerini 50 ile çarparak görüntülemek için: SELECT ‘1234’ AS KAR 50*TO_NUMBER(‘1234’) AS SAYISAL FROM DUAL; ORACLE veritabanında CINT yerine TO_NUMBER 12/17/1990 tarihinden sonra işe giren personeli listelemek için: SELECT ADI, GİRİŞ_TAR FROM PERSONEL WHERE GİRİŞ_TAR>TO_DATE(‘OCAK 1,1995’,’MONTH DD,YYYY’); ORACLE veritabanında CDATE yerine TO_DATE
MSAccess de kullanılan SQL fonksiyonlarının bulunduğu web sitesi: http://www.techonthenet.com/access/functions/