Bilgisayarda fonksiyon bir veya daha fazla işlem satırından oluşan kodların bir kod bloğu şeklinde bir isim altında toplanması olarak ifade edilebilir. Böylece, sadece fonksiyon ismi çağrılarak, fonksiyon içinde yer alan kodlar çalıştırılır.
SQL içinde veriler üzerinde işlemler yapmak üzere hazır fonksiyonlar bulunur. SQL fonksiyonları genel olarak 2 gruba ayrılır:
SQL Çoklu Satır (Aggregate) Fonksiyonları
Bu fonksiyonlar bir sütunda yer alan birden fazla değerler üzerinde yaptığı hesaplamalar sonrası tek bir değer geri verir.
SQL Sayısal (Scalar) Fonksiyonları
Bu fonksiyonlar bir sütunda yer alan tek bir değere işlem yapar ve tek bir değer geri verir.
Mlzid | MlzAdi | Fiyat |
---|---|---|
1 | Masa | 250 |
2 | Sandalye | 80 |
3 | Kitaplık | 310 |
4 | Sehpa | 120 |
5 | Koltuk | 250 |
Sayısal değer içeren bir tablo sütunundaki değerlerin ortalamasını verir.
AVG() fonksiyonunun yazım şekli aşağıdadır:
SELECT AVG(sütun_adı) FROM tablo_adı
Yukarıdaki malzeme adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunun Fiyat sütununda yer alan değerlerin ortalaması sonuç tablosuna aktarılır:
SELECT AVG(Fiyat) AS OrtFiyat FROM malzeme
OrtFiyat |
---|
202 |
Tanımlanan kriterlere uygun olan satırların sayısını verir.
COUNT() fonksiyonunun farklı kullanışlarına ait yazım şekilleri aşağıdadır:
Bir tablo içinde tanımlanan sütunda bulunan değer sayısını verir. NULL değerler dikkate alınmaz:
SELECT COUNT(sütun_adı) FROM tablo_adı
Bir tablo içinde bulunan tüm kayıtların sayısını verir:
SELECT COUNT(*) FROM tablo_adı
Bir tablo içinde tanımlanan bir sütundaki farklı değere sahip kayıtların sayısını verir:
SELECT COUNT(DISTINCT sütun_adı) FROM tablo_adı
Yukarıdaki malzeme adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunun Fiyat sütununda 200'den büyük değer taşıyan kayıt sayısı (3 adet) sonuç tablosuna aktarılır:
SELECT COUNT(Fiyat) AS YuksekFiyat FROM malzeme WHERE Fiyat > 200
YuksekFiyat |
---|
3 |
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunda yer alan kayıtların sayısı sonuç tablosuna aktarılır:
SELECT COUNT(*) AS SayiKayit FROM malzeme
SayiKayit |
---|
5 |
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunda Fiyat sütununda yer alan farklı değere sahip kayıt sayısı sonuç tablosuna aktarılır:
SELECT COUNT(DISTINCT Fiyat) AS FarkliKayit FROM malzeme
FarkliFiyat |
---|
4 |
Bir tabloda seçilen sütundaki ilk değeri geri verir.
FIRST() fonksiyonunun yazım şekli aşağıdadır:
SELECT FIRST(sütun_adı) FROM tablo_adı
Yukarıdaki malzeme adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunun MlzAdi sütununda yer alan ilk değer sonuç tablosuna aktarılır:
SELECT FIRST(MlzAdi) FROM malzeme
FIRST() fonksiyonunu desteklemeyen sistemler için:
SELECT MlzAdi FROM malzeme LIMIT 1
MlzAdi |
---|
Masa |
Bir tabloda seçilen sütundaki son değeri geri verir.
FIRST() fonksiyonunun yazım şekli aşağıdadır:
SELECT LAST(sütun_adı) FROM tablo_adı
Yukarıdaki malzeme adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunun MlzAdi sütununda yer alan son değer sonuç tablosuna aktarılır:
SELECT LAST(MlzAdi) FROM malzeme
LAST() fonksiyonunu desteklemeyen sistemler için:
SELECT MlzAdi FROM malzeme ORDER BY Mlzid DESC LIMIT 1
MlzAdi |
---|
Koltuk |
Bir tabloda seçilen sütundaki en büyük değeri geri verir.
MAX() fonksiyonunun yazım şekli aşağıdadır:
SELECT MAX(sütun_adı) FROM tablo_adı
Yukarıdaki malzeme adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunun Fiyat sütununda yer alan en büyük değer sonuç tablosuna aktarılır:
SELECT MAX(Fiyat) as MaxFiyat FROM malzeme
MaxFiyat |
---|
310 |
Bir tabloda seçilen sütundaki en küçük değeri geri verir.
MIN() fonksiyonunun yazım şekli aşağıdadır:
SELECT MIN(sütun_adı) FROM tablo_adı
Yukarıdaki malzeme adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunun Fiyat sütununda yer alan en küçük değer sonuç tablosuna aktarılır:
SELECT MIN(Fiyat) as MinFiyat FROM malzeme
MinFiyat |
---|
80 |
Bir tabloda seçilen sayısal sütundaki değerlerin toplamını geri verir.
SUM() fonksiyonunun yazım şekli aşağıdadır:
SELECT SUM(sütun_adı) FROM tablo_adı
Yukarıdaki malzeme adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunun Fiyat sütununda yer alan değerlerin toplamı sonuç tablosuna aktarılır:
SELECT SUM(Fiyat) as TopFiyat FROM malzeme
TopFiyat |
---|
1010 |
Bir tabloda seçilen metin alanındaki değeri küçük harfe çevirir.
LCASE() fonksiyonunun yazım şekli aşağıdadır:
SELECT LCASE(sütun_adı) FROM tablo_adı
Yukarıdaki malzeme adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunun MlzAdi sütununda yer alan değerler küçük harfe çevrilerek sonuç tablosuna aktarılır:
SELECT LCASE(MlzAdi) as MlzKucuk FROM malzeme
MlzKucuk |
---|
masa |
sandalye |
kitaplık |
sehpa |
koltuk |
Bir tabloda seçilen alandaki metin değerinin uzunluğunu verir.
LEN() fonksiyonunun yazım şekli aşağıdadır:
SELECT LEN(sütun_adı) FROM tablo_adı
Yukarıdaki malzeme adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunun MlzAdi sütununda yer alan metin değerlerinin uzunluğu sonuç tablosuna aktarılır:
SELECT LEN(MlzAdi) as MlzAdiUzun FROM malzeme
MlzAdiUzun |
---|
4 |
8 |
8 |
5 |
7 |
Bir tabloda seçilen metin alanından karakterler elde etmeyi sağlar.
MID() fonksiyonunun yazım şekli aşağıdadır:
SELECT MID(sütun_adı, başlangıç[, uzunluk]) FROM tablo_adı
sütun_adı : Karakterlerin alınacağı alan adı
başlangıç : Veri alanı içindeki başlangıç yeri (En düşük değer 1)
uzunluk : (İsteğe bağlı) Alınacak karakter sayısı. Tanımlanmadığında, metinin geri kalanı alınır.
Yukarıdaki malzeme adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunun MlzAdi sütununda yer alan metin değerlerinin ilk 3 karakteri sonuç tablosuna aktarılır:
SELECT MID(MlzAdi, 1, 3) as MlzAdiİlkUc FROM malzeme
MlzAdiİlkUc |
---|
Mas |
San |
Kit |
Seh |
Kol |
Bilgisayar sistem tarih ve zamanını verir.
NOW() fonksiyonunun yazım şekli aşağıdadır:
SELECT NOW() FROM tablo_adı
Eğer aşağıdaki komutu kullanırsanız; sistem tarih ve zamanı sonuç tablosuna aktarılır:
SELECT NOW() as TarihSaat
TarihSaat |
---|
2013-02-15 21:41:24 |
Bir tabloda seçilen veri alanının ekranda gösterilme şeklini belirler.
FORMAT() fonksiyonunun yazım şekli aşağıdadır:
SELECT FORMAT(sütun_adı, format) FROM tablo_adı
sütun_adı : Gösterilme şekli belirlenecek alan adı
format : Gösterilme şekli
Yukarıdaki malzeme adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunda yer alan değerler sistem tarihi ile birlikte sonuç tablosuna aktarılır:
SELECT Mlzid, MlzAdi, Fiyat, FORMAT(Now(),'DD.MM.YYYY') as Tarih FROM malzeme
Mlzid | MlzAdi | Fiyat | Tarih |
---|---|---|---|
1 | Masa | 250 | 16.02.1013 |
2 | Sandalye | 80 | 16.02.1013 |
3 | Kitaplık | 310 | 16.02.1013 |
4 | Sehpa | 120 | 16.02.1013 |
5 | Koltuk | 250 | 16.02.1013 |
Bir tabloda seçilen sayısal veri alanı değerini tanımlanan ondalık değerine yuvarlar.
ROUND() fonksiyonunun yazım şekli aşağıdadır:
SELECT ROUND(sütun_adı, ondalık) FROM tablo_adı
sütun_adı : Yuvarlanacak alan adı
ondalık : Ondalık sayısını gösterir.
Yukarıdaki malzeme adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosu Fiyat sütununda yer alan değerler yuvarlanarak sonuç tablosuna aktarılır:
SELECT ROUND(Fiyat, 0) as TamFiyat FROM malzeme
Mlzid | MlzAdi | Fiyat |
---|---|---|
1 | Masa | 250,75 |
2 | Sandalye | 80,50 |
3 | Kitaplık | 310,25 |
4 | Sehpa | 120,75 |
5 | Koltuk | 250,25 |
TamFiyat |
---|
250 |
80 |
310 |
120 |
250 |
Bir tabloda seçilen metin alanındaki değeri büyük harfe çevirir.
UCASE() fonksiyonunun yazım şekli aşağıdadır:
SELECT UCASE(sütun_adı) FROM tablo_adı
Yukarıdaki malzeme adlı örnek tablo üzerinde işlemler yapmaya çalışalım:
Eğer aşağıdaki komutu kullanırsanız; malzeme tablosunun MlzAdi sütununda yer alan değerler büyük harfe çevrilerek sonuç tablosuna aktarılır:
SELECT UCASE(MlzAdi) as MlzBuyuk FROM malzeme
MlzBuyuk |
---|
MASA |
SANDALYE |
KİTAPLIK |
SEHPA |
KOLTUK |