Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 30

8.1.

Giriş

Fonksiyonlar yada işlevler, SQL’de birtakım güçlü özellikleri olan

olanaklar olarak değerlendirilir. SQL fonksiyonları iki başlıkta incelenir:


1. Tek Satır Fonksiyonları
2. Çoklu Satır Fonksiyonları (Grup Fonksiyonları)

Tek satır fonksiyonları, tablonun tek bir satırına uygulanır ve tek tek
her satır için sonuç üretilir.
Çoklu satır fonksiyonlarda ise, bir grup satıra uygulanır ve sonuç
buna göre çıkartılır.
8.2.1. Tek Satır Fonksiyonları

Bu fonksiyonlar tek satır üzerinde işlem yapar ve her satır başına tek
bir değer döndürür. Tek satır fonksiyonları:
Veri parçalarını ustaca kullanmak
Argümanlar alır ve tek değer üretir
Her satır başına bir değer döndürür
Veri tiplerini düzenler
Gruplanabilir
SELECT, WHERE ve ORDER BY ifadelerinde kullanılabilir.
8.2.1. Tek Satır Fonksiyonları

Fonksiyon İsmi (sütun | ifade, [argümanlar] )

Fonksiyon İsmi: Herhangi bir SQL fonksiyonunu işaretler. Fonksiyon


isimleri değiştirilmez.

Sütun: Bir tabloya ait sütun adı.

İfade: Herhangi bir karakter dizisi veya hesaplama işlemi.

Argümanlar: Fonksiyonla beraber kullanılabilen argümanlardır.


8.2.1. Tek Satır Fonksiyonları

Tek satır fonksiyonlarının birçok çeşidi mevcuttur. Bunlar;


 Karakter Fonksiyonlar: Karakter girişini kabul eder ve karakter ve
sayı değerleri geri döndürebilir.
 Sayısal Fonksiyonlar: Sayı girişini kabul eder ve sayı değerleri geri
döndürür.
 Tarih Fonksiyonları: Tarih veri tipinde bir değeri işlerler ve
MONTHS_BETWEEN fonksiyonu haricindeki tüm fonksiyonlar tarih veri
tipinde bir değer geri döndürürler.
 Çevrim (Dönüştürme) Fonksiyonları: Bir veri tipindeki bir değeri
diğer bir veri tipine çevirirler.
 Genel Fonksiyonlar
8.2.1.1. Karakter Fonksiyonları

String (karakter) alanları işlemek için yaygın kullanılan fonksiyonlar


bu alana girer.
ASCII: Bir karakter ifadenin en soldaki değerinin ASCII kodunu üretir.

ASCII (karakter ifade)

SELECT ASCII(‘A’) AS ‘(A) ASCII CODE’


CHARINDEX

Bir karakter katarı içinde belirtilen bir ifadenin başlangıç konumunu

döndürür.

CHARINDEX (ifade1, ifade2 [başlangıç konumu] )

İfade1: Aranan karakterler

İfade2: Orijinal karakter katarı

Başlangıç konumu: Aramanın başlanacağı konumu belirtir.

SELECT CHARINDEX(‘@’, ‘deneme@cu.edu.tr’ ,1) AS ‘Konum’


LEFT VE LEN

Bir karakter katarını sol taraftan belirtilen sayı kadar keser.


LEFT (karakter katarı, tamsayı)

SELECT LEFT(‘Örnek’,3) AS ‘İlk 3 Harf’

Karakter katarının uzunluğunu döndürür. Fonksiyon boşluğu da sayar.


LEN (karakter katarı)

SELECT LEN(‘Çukurova Üniversitesi’) AS ‘Karakter Sayısı’


LTRIM VE RIGHT

LTRIM: Önündeki boşlukları siler.


LTRIM (karakter katarı)

SELECT LTRIM(‘ Bilgisayar’) AS ‘Boşluksuz’

RIGHT: Bir karakter katarını sağ taraftan belirtilen sayı kadar keser.
RIGHT (karakter katarı, tamsayı)

SELECT RIGHT(‘Örnek’,3) AS ‘Son 3 Harf’


RTRIM

Karakter katarının arkasındaki boşlukları kaldırır.

RTRIM (karakter katarı)

SELECT RTRIM(‘Bilgisayar ’) AS ‘Boşluksuz’


STUFF

Verilen bir metnin verilen başlama konumundan itibaren istenilen


karakter sayısı kadarını yeni metin ile değiştirir.

STUFF (Orijinal Metin, Başlama Konumu, Değiştirilecek Karakter


Sayısı, Eklenecek Metin)

SELECT STUFF(‘Adana Erkek Lisesi’, 7, 5, ‘Kız’) AS ‘Okul Adı’


SUBSTRING

Bir karakter katarının içinden belli karakterleri seçer.

SUBSTRING (karakter katarı, başlangıç, uzunluk)

SELECT SUBSTRING(‘Çukurova Üniversitesi’, 10, 10) AS ‘Başlık’


CONCAT VE UPPER

Katar1 olarak belirtilen alan ile Katar2 alanını birleştirir. ‘||’ simgesi de
aynıdır.

CONCAT (Katar1, Katar2)

SELECT CONCAT(‘Çukurova’, ‘Üniversitesi’) AS ‘Birleştirme’

Karakter katarı olarak belirtilen alanı büyük harfe çevirir.

UPPER (Karakter Katarı)

SELECT UPPER(‘bilgisayar’) AS ‘Büyük Harf’


LOWER

Karakter katarı olarak belirtilen alanı küçük harfe çevirir.

LOWER (Karakter katarı)

SELECT LOWER(‘BİLGİSAYAR’) AS ‘Küçük Harf’


8.2.1.2. Sayısal Fonksiyonlar

Sayısal verilerde birtakım işlemleri uygulamak için özel fonksiyonlar

mevcuttur.

Fonksiyon Açıklama
ROUND Verilen sayıyı istenilen biçimde yuvarlar.
TRUNC Verilen sayıyı kısaltmak (sondan istenilen kadarını
yok saymak).
MOD Matematiksel mod alma işlemini gerçekleştirir.

Çizelge 8.2.1.2.1. Sayısal Fonksiyonlar


ROUND

Verilen kolonu veya değeri n sayısına göre yuvarlar. Eğer n verilmemiş


ise ondalık kısmı ihmal eder; aksi halde n karakterden sonraki rakamları
yuvarlar.

ROUND (Sayı,m)

ROUND (55.923, 2)  55.92

ROUND (15.923, 0)  16

ROUND (35.929, 2)  35.93


TRUNC VE MOD

Verilen kolonun veya değerin ondalık kısmından n karakterden


sonrasını kesip atar. Eğer n verilmemişse ondalık kısmı ihmal eder.
TRUNC (Sayı, m)

TRUNC (54.923, 2)  54.92

İki sayısal ifadenin birbirine bölümünden kalanı bulmak için kullanılır.


MOD (m,n)

MOD (57, 5)  2
8.2.1.3. Tarih Fonksiyonları
Fonksiyon Açıklama
DAY Bir tarih bilgisinin gün kısmını verir.
NEXT_DAY Belirtilen günden sonraki günü bulur.
LAST_DAY Ayın son gününü bulur.
ROUND Tarihi yuvarlar.
TRUNC Tarihi kesip atar.
DATEADD Belli bir tarihin üzerine değer eklenerek yeni bir tarih değeri üretir.

DATEDIFF İki tarih arasındaki gün sayısını verir.


DATEPART Belirtilen tarihin istenen parçasına karşılık olarak bir tamsayı
döndürür.

MONTH Bir tarih bilgisinin ay kısmını verir.


MONTHS_BETWEEN İki tarih arasındaki ay sayısını bulur.
ADD_MONTHS Tarihe ay ekler.
YEAR Bir tarih bilgisinin yıl kısmını verir.
DATEADD

Bir tarihe veya saate, belirli bir parametreye bağlı olarak değer
eklemeye yarar.

Parametre Tanım
DATEADD (tür, sayı, tarih)
yyyy Yıl
m Ay
DATEADD (“m”, 3, “2.11.2003”)
d Gün
DATEADD (“d”, 3, “2.11.2003”)
w Haftanın Günü
DATEADD (“h”, 3, “20:30:11”)
h Saat
n Dakika
s Saniye
DATEDIFF

İki tarih arasındaki zaman farkını yine belirli parametrelere bağlı


olarak verir.

DATEDIFF (Tür, başlangıç tarihi, bitiş tarihi)

DATEDIFF (“d”, “02.11.2003 23:26:13”, “02.01.2004 20:20:29”)


DATEPART AND DAY

DATEPART: Belirtilen tarihin istenen parçasına karşılık olarak bir


tamsayı döndürür.

DATEPART (tarihparçası, tarih)

DAY: Bir tarih bilgisinin gün kısmını verir.

DAY (tarih)

DAY (’21.12.1974’)
NEXT_DAY AND LAST DAY

NEXT_DAY: Verilen tarihten bir sonraki haftanın istenilen gününün


tarihini döndürür.

NEXT_DAY (tarih, gün)

LAST_DAY: Girilen tarihin ayının son gününün tarihini döndürür.


LAST_DAY (tarih, gün)
MONTH AND MONTHS BETWEEN

MONTH: Bir tarih bilgisinin ay kısmını verir.

MONTH (tarih)

MONTH (’21.12.1974’)  12

MONTHS_BETWEEN: Mantıksal bir çıkarma yaparak iki tarih


arasındaki ay sayısını bulur. Eğer tarih1, tarih2’den daha önceki bir tarihse
sonuç negatiftir.

MONTHS_BETWEEN (tarih1, tarih2)


ADD_MONTHS AND YEAR

ADD_MONTHS: Belirtilen tarihe n sayısı kadar ayı ekler. n bir tam


sayı olmalıdır ve negatif olabilir.

ADD_MONTHS (tarih, n)

ADD_MONTHS (’11.10.2005’, 2)

YEAR: Bir tarih bilgisinin yıl kısmını verir.

YEAR (tarih)

YEAR (‘21.12.1974’)
ROUND AND TRUNC

ROUND: Tarihi belirtilen formata göre aya veya yıla göre yuvarlar.
Varsayılan tarih formatı ‘DD-MON-YY’ şeklindedir. Üzerinde aritmetiksel
işlemler yapılabilir.

ROUND (tarih ['format'] )

TRUNC: Tarih’i belirtilen formata göre aya veya yıla göre keser.

TRUNC (tarih ['format'] )


8.2.1.4. Dönüştürme Fonksiyonları

Karakter, sayısal ve tarih verilerinin birbirine dönüşebilmesi için


çeşitli fonksiyonlar kullanılır. Bunlar;

Fonksiyon Anlamı
TO_CHAR() Tarih yada sayısal verinin istenilen formatta
biçimlendirilmesini sağlar.

TO_NUMBER() Bir katarın içerdiği sayısal değerlerini istenilen


biçimde sayısal veriye dönüşümünü sağlar.

TO_DATE() Bir katarın içerdiği sayısal verileri tarih formatına


çevirmede kullanılır.

Çizelge 8.2.1.4.1. Dönüştürme Fonksiyonları


TO_CHAR()

Tarih veya sayısal bir ifadenin istenen şekilde biçimlendirerek


karakter katarına dönüşümünü sağlar.

TO_CHAR (Tarih, “Format”) ile tarih bilgisini karakter dizisine


dönüştürür.

TO_CHAR (Sayı, “Format”) ile sayısal ifadeyi katara dönüştürür.

Tarih ile ilgili biçimlendirme ifadesi birtakım biçimlendirme


elemanlarından meydana gelir.
TO_CHAR()

Eleman Anlamı Eleman Anlamı


YYYY Dört haneli yıl bilgisi AM, PM Meridyen göstergesi
YEAR Yılın okunduğu haliyle yazımı HH Günün saati
MM İki haneli ay formatı içeriği MI Dakika bilgisi
MONTH Ayın yazım adı SS Saniye bilgisi
Zaman Biçimlendirme Elemanları
DD Haftanın gün bilgisi
DAY Günün yazım adı.
Tarih Biçimlendirme Elemanları
TO_CHAR()

Eleman Anlamı
9 Sayısal değeri bildirir.
0 Sıfır.
$ Dolar imi.
L Yerel para birimi..
. Ondalık hane
, Binler hanesi
Sayısal Biçimlendirme Elemanları

Örnek) Öğrencilerin mezuniyet tarihlerini MM/YY biçiminde elde etmek için:

SELECT Ad, TO_CHAR (MezuniyetTarih, ‘MM/YY’) AS Tarih


FROM Ogrenci;
TO_ NUMBER()

Karakter alan olarak tanımlanan sütunun içerdiği sayısal değeri,


sayısal veri türüne dönüştürmek için kullanılır.
TO_ NUMBER (katar, ‘format’)

Örnek) SQL’in SELECT deyimi ile veritabanından okunan bilgilerle işlemler


yapılır. Fakat bazı durumlarda tablo olmaksızın işlemin yapılması gerekir.
SELECT TO_NUMBER (‘112233’) AS Dönüşüm
FROM Ogrenci;
TO_ DATE()

Katar olarak, karakter serisi olarak muhafaza edilen deyimleri tarih


bilgisine çevirmek için kullanılır.

Örnek) Mezuniyet tarihi 07.01.2004’ten sonra olanları görüntülemek

için:

SELECT Ad, MezuniyetTarih

FROM Ogrenci

WHERE MezuniyetTarih>TO_DATE(‘Ocak,7,2004’, ‘Month, dd, yyyy’)

You might also like