Home / MAKALELER / Veri Tabanı / Oracle’da SQL Fonksiyonları

Oracle’da SQL Fonksiyonları

Tek satırlık SQL fonksiyonlarına giriş

Pusula Akademi Oracle grubundan Tolga bizlere makalesini göndermiş.Değerli çalışmaları için teşekkür ediyor makalesini yayınlıyoruz.

Merhabalar makalemizde bu hafta SQL fonksiyonlarından tek satırlık fonksiyonlara giriş yapacağız . Bu makalemizde tek satırlık olan karakter fonksiyonlarını işleyeceğiz. Temel bilgilerle konuyu kavrayıp yapılan örneklerle uygulamalı olarak öğrenme imkanı bulacağız. Oracleda fonksiyonları iki başlık altında toplayabiliriz. Tek satır fonksiyonları ve grup fonksiyonları;Dilerseniz öncelikle fonksiyonu tanımlayalım; Fonksiyon,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ç üretmektedir. Fonksiyonlar iç içe de (nested) kullanılabilirler. Diğer bir deyişle, bir fonksiyonunun sonucu, başka bir fonksiyona parametre olarak geçebilir

 

t

 

•        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.

TEK SATIR FONKSİYONLARI

1. Karakter fonksiyonları

1.1 UPPER Fonksiyonu ;

Parametre olarak yazılan karakter türündeki veride yer alan tüm küçük harfleri büyük harfe çevirir. Parametreyi elle yazabildiğimiz gibi başka bir sorgunun sonucunu da parametre olarak kullanılabilir.Ancak bu yöntemde, içerdeki sorgunun karakter veri türünde bir veri dödüreceğinden emin olmalısınız.

>>UPPER(karakter_parametre)

Örnek sorgumuz şu şekilde yazabiliriz;

 

t2

 

Sonucunda Oracle ın sağladığı DUAL tablosunu kullanarak küçük harfle yazılmış ‘aykut’ karakter verisindeki harflerin tamamını büyük harfe çevirmiş olacağız;

 

t3

 

1.2 LOWER Fonksiyonu:

Upper fonksiyonunun işlevsel olarak tam tersi olan fonksiyondur. Yani, karakter veri türü olarak girilen parametredeki tüm harfleri küçük harfe dönüştürür.

>>LOWER(karakter_parametre)

Örnek sorgumuzda bakalım;

t4

Bu sorguda, employees tablosundaki isimlerin tamamı küçük harfle ,  soyadların tamamı da büyük harfle listelenecektir.Son olarak  select tümcesinin bir numaralı sütunu olan first_name sütununa göre artan biçimde sıralama yapılacaktır. Çıktımız;

t5

 

Gibi olacaktır.

 

1.3 INITCAP Fonksiyonu:

Bu fonksiyon, parametre olarak girilen karakter verisindeki ilk harfi büyük harfe dönüştürür.

>>INITCAP (karakter_parametre)

Örnek döngümüz;

t6

 

Sonucunda;

t7

 

 

1.4 LENGTH Fonksiyonu:

Parametre olarak verilen karakter dizisindeki toplam karakter sayısını döndürür.

>>LENGTH (karakter_parametre)

 

t8

 

Örnek kodumuzda ‘Süleyman Demirel Üniversitesi’ verisinin karakter sayısını döndürecektir. Dikkat etmemiz gereken nokta boşluklarda sayılacaktır. Döngü bize 29 sonucunu verecektir;

 

t9

 

1.5 SUBSTR Fonksiyonu :

SUBSTR parametre olarak girilen karakter türündeki verinin belirtilen başlangıç pozisyonundan itibaren başlamak kaydıyla yine istenilen karakter sayısı kadar bulunan tüm karakterlerini döndüren bir fonksiyondur.

>>SUBSTR(karakter_verisi, başlangıç_pozisyonu,seçilecek_karakter_sayısı)

 

t11

Örnek sorgumuzda SYSDATE ile bugünün tarih verisini (22-DEC-11) alıyoruz aldığımız bu verinin 4. Karakterinden başlayarak 3 karakter dizisini gösteriyoruz.

 

t12

 

1.6 INSTR Fonksiyonu:

INSTR fonksiyonu i verilen karakter türündeki veride yer alan ve yine parametre olarak girilen anahtar kelime veya harfin bulunduğu konumu döndürür. Örneğin ‘esra’ verisindeki ilk ‘a’ harfini aratacak olursak dönecek olan sonuç 4 olacaktır.

>>INSTR(karakter_verisi, aranan_karakterler,[başlangıç_pozisyonu],[tekrar_sayısı])

ilk iki parametre zorunludur ancak başlangıç_pozisyonu ve tekrar_sayısı isteğe bağlı olarak girilebilir.

Örnek sorgumuza bakalım;

t13

 

 

Bu sorguyla, first_name sütununda yer alan isimler arasından ‘Jo’ harflerinin yer aldığı isimler aranmış ve ardından sıralanmıştır. İsmi ‘Jo’ ile başlamayanların sonuçları 0 , başlayanlar ise 1 sonucunu verecektir.Sonuca bakalım;

 

t14

 

1.7 CONCAT Fonksiyonu:

CONCAT fonksiyonu, birden çok karakter türündeki veriyi birleştirmek için kullanılır. İki adet parametre alan CONCAT fonksiyonunun söz dizimi oldukça basittir:

>>CONCAT(karakter_verisi1,karakter_verisi2)

Örnek sorgumuza bakalım;

t15

 

 

Bu sorguyla isim ve soy isimleri birleştirip aldığımız sonucu da artan biçimde sıralıyoruz.”||” simgesiyle, karakter türündeki verileri birleştirmemiz mümkündür. Burada dikkat etmemiz gereken, ”||” işaretinin ilk parametre olan first_name sütunuyla birlikte düşünülmesi gerektiğidir.Zira CONCAT sadece iki parametre kabul eder.Örneğimizdeki parametreler tam olarak şu şekildedir:

karakter_verisi1=first_name || ‘ ’

karakter_verisi2=last_name

1.8 RPAD Fonksiyonu:

RPAD fonksiyonu, parametre olarak verilen karakter türündeki verinin sağ tarafına doğru, yine belirtilen bir karakteri eklemek için kullanılan bir fonksiyondur. RPAD söz dizimi şu şekildedir;

>>RPAD (karakter_verisi, seçilecek_karakter_uzunluğu, eklenecek_karakter)

Örneklendirecek olursak:

 

t16

 

Bu örnekte, kişi isimlerinin ilk 10 harfi seçilmiş ve adı 10 harften az olan kişilerin adlarının sağ tarafına yıldız simgesi eklenmiştir. Sonuçların yer alacağı sütun “RPAD ÖRNEĞİ” takma adıyla adlandırılmış ve son adımda sıralama bu takma ada göre artan biçimde gerçekleştirilmiştir.

1.9 LPAD Fonksiyonu :

İşlev olarak RPAD fonksiyonuyla aynı işlemi yapan LPAD fonksiyonu,parametre olarak girilen karakter türündeki verinin sol tarafına belirtilen karakteri ekler.Söz dizimi RPAD ile aynıdır.:

>>LPAD(karakter_verisi, seçilecek_karakter_uzunluğu, eklenecek_karakter)

1.10 TRIM Fonksiyonu:

TRIM fonksiyonu, karakter türünde girilen parametrenin sonundaki, başındaki veya her iki tarafındaki belirtilen karakterleri kaldırır.

Söz dizimi şu şekildedir:

>>TRIM(leading | trailing_kaldırılacak_karakter FROM hedef_karakter_verisi )

Varsayılan olarak, kaldırılmak üzere aranan karakter, hedef karakter verisinin hem başında hem de sonunda aranır ve bulunursa kaldırır. Şayet hedef karakter verisinin sadece başında arama yapmak istersek leading, sadece sonunda arama yapmak istersek trailing anahtar kelimelerinden uygun olanını yazmamız uygun olacaktır. Eğer her iki yönde de arama yapılmasını istiyorsak both anahtar kelimesini kullanabilir veya anahtar kelime kullanmadan boş bırakmayı tercih edebiliriz.Zira varsayılan arama her iki yön için de yapılacaktır.

Örnek sorgumuzu inceleyelim:

 

t17

 

Bu sorguyu çalıştırdığımız zaman ‘*****Fatmagül*****’ karakter verisinin hem sonunda hem de başında  yer  alan yıldız işaretlerinin kaldırıldığını görürüz.Çıktısı;

 

t18

 

Olacaktır.

1.11 REPLACE Fonksiyonu:

Bir karakter verisinde , belirttiğimiz bir harfi veya karakter dizisini buldurup yine belirttiğimiz harf veya harflerle yer değiştirmelerini istersek, REPLACE fonksiyonunu kullanırız.

Söz dizimi şu şekilde olacaktır:

>>REPLACE ( hedef_karakter_verisi,aranan_karakter,[değişim_karakteri] )

Burada zorunlu olan hedef_karakter_verisi ve aranan_karakter parametreleridir. İsteğe bağlı olarak kullanılabilen değişim_karakteri parametresi kullanılmazsa, aranan_karakter değeri bulunduğu yerlerde kaldırılır ve yerine boşluk karakteri gelir.

Örnek sorgumuza bakalım;

 

t19

 

Bu sorgu, first_name sütunundaki isimlerden küçük “a” harfini çıkarır.Örneğin isim “David” iken sonuç “Dvid” olacaktır.

 

t20

 

Bir başka örnek sorgumuza bakalım;

 

t21

 

Bu SQL sorgusuyla ise, ismlerdeki küçük “e” harfleri çıkartılır ve yerlerine yıldız işareti “*” konulur. Sonucuna bakalım;

 

t22

 

REPLACE fonsiyonuyla tüm karakter fonksiyonlarını görmüş olduk.Diğer makalelerde görüşmek dileğiyle mutlu kalın..

Tolga BÖREKCİ

About Yusuf Arslan

Sakarya Üniversitesi Bilgisayar Mühendisliği bölümünü bitirdikten sonra kariyerine Datawarehouse-Database Uzmanı olarak devam etmektedir Sitenin kurucusu ve yazarıdır. yusufarslanbm@gmail.com adresinden bana ulaşabilirsiniz.

İlginizi Çekebilir

SQL Server ile Veri Şifreleme

Bilgi teknolojilerinde verinin güvenliği çok kritik bir öneme sahiptir. Önemli verileri korumak için ekstra bir …

Bir Cevap Yazın