SQL Fonksiyonları

Tablolarda bazı değerleri hesaplamak yada bulmak için hazır SQL fonksiyonları kullanılır. Bunların başlıcaları şunlardır:

Bu fonksiyonlar kullanıldığında geriye dönen değer tektir. Tek satırlı, tek sütunlu yani tek hücreli bir tablo döner. Bu tabloda sütun adı olarak istediğimiz bir adı as sutun_adi ifadesiyle kullanabiliriz.

Okul veritabanı

1) count(alan)

Belirtilen alandaki kayıt sayısını bulur. Kullanımı şöyledir:

select count(alan) as sutun_adi from tablo_adi;

 

Örnek: ogrenciler tablosunda kaç öğrenci olduğunu bulalım.

select count(ogrenci_no) as mevcut from ogrenciler;

 

Örnek: 12blsb sınıfında kaç öğrenci olduğunu bulalım.

select count(ogrenci_no) as mevcut from ogrenciler where sinif_kodu='12blsb';

 

Örnek: 12andbls sınıfında kaç tane kız öğrenci olduğunu bulalım.

select count(ogrenci_no) as mevcut from ogrenciler where cinsiyeti='k' and sinif_kodu='12andbls';

 

2) min(alan)

Belirtilen alandaki en küçük değeri bulur. Kullanımı şöyledir:

select min(alan) as sutun_adi from tablo_adi;

 

Örnek: notlar tablosundaki en küçük notu bulalım.

select min(notu) as enkucuk from notlar;

 

Örnek: mat dersinden alınan en küçük notu bulalım.

select min(notu) as enkucuk from notlar where ders_kodu='mat';

 

Örnek: 33 nolu öğrencinin almış olduğu en küçük notu bulalım.

select min(notu) as enkucuk from notlar where ogrenci_no=33;

 

3) max(alan)

Belirtilen alandaki en büyük değeri bulur. Kullanımı şöyledir:

select max(alan) as sutun_adi from tablo_adi;

 

Örnek: notlar tablosundaki en büyük notu bulalım.

select max(notu) as enbuyuk from notlar;

 

Örnek: geo dersinden alınan en büyük notu bulalım.

select max(notu) as enbuyuk from notlar where ders_kodu='geo';

 

Örnek: 59 nolu öğrencinin almış olduğu en büyük notu bulalım.

select max(notu) as enbuyuk from notlar where ogrenci_no=59;

 

personel

personel_no ad soyad konum maas derece
64521 Erkan Dereköy usta 1650 6
45154 Kenan Filiz isci 1200 2
89411 Ayşe Namlı mudur 1870 8
11518 Zakir Eren isci 1350 7
98484 Ömer Ercan mudur 2050 9

4) avg(alan)

Belirtilen alandaki değerlerin ortalamasını bulur. Kullanımı şöyledir:

select avg(alan) as sutun_adi from tablo_adi;

 

Örnek: notlar tablosundaki ted dersinden alınan notların ortalamasını bulalım.

select avg(notu) as ortalama from notlar where ders_kodu='ted';

 

Örnek: 12andbls sınıfının mat dersinin not ortalamasını bulalım.

select avg(notlar.notu) as ortalama from ogrenciler, notlar
where ogrenciler.ogrenci_no=notlar.ogrenci_no and ogrenciler.sinif_kodu='12andbls';

Not: Burada iki tabloyu birleştirerek kullandık.

 

Örnek: 12blsb sınıfındaki erkek öğrencilerin geo dersinin not ortalamasını bulalım.

select avg(notlar.notu) as ortalama from ogrenciler, notlar
where ogrenciler.ogrenci_no=notlar.ogrenci_no and ogrenciler.cinsiyeti='e' and ogrenciler.sinif_kodu='12blsb' and notlar.ders_kodu='geo';

 

Örnek: Yukarıdaki personel tablosuna göre işçilere verilen maaşların ortalamasını bulalım.

select avg(maas) as ort_maas from personel where konum='isci';

 

Örnek: Yukarıdaki personel tablosuna göre derecesi 8'den büyük olan müdürlerin maaşlarının ortalamasını bulalım.

select avg(maas) as ort_maas from personel where konum='mudur' and derece>8;

 

5) sum(alan)

Belirtilen alandaki değerlerin toplamını bulur. Kullanımı şöyledir:

select sum(alan) as sutun_adi from tablo_adi;

 

Örnek: Yukarıdaki personel tablosuna göre personele verilen maaşların toplamını bulalım.

select sum(maas) as toplam from personel;

 

Örnek: İşçilere verilen maaşların toplamını bulalım.

select sum(maas) as toplam from personel where konum='isci';

 

Örnek: Derecesi 5'den büyük olan personelin maaşlarının toplamını bulalım.

select sum(maas) as toplam from personel where derece>5;