Yazdır 14 Haziran 2010 Pazartesi (Hit: 30710)

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:

  • count (alan)  > Belirtilen alandaki kayıt sayısını bulur.
  • min(alan)      > Belirtilen alandaki en küçük değeri bulur.
  • max(alan)     > Belirtilen alandaki en büyük değeri bulur.
  • avg(alan)      > Belirtelen alandaki değerlerin ortalamasını bulur.
  • sum(alan)    > Belirtilen alandaki değerlerin toplamını bulur.

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;

 


Bu site meslek liselerinde bilişim bölümü web programcılığı dalında okutulan internet programcılığı dersine yardımcı olması için tasarlanmıştır. İletişim için iletisim@phpdefteri.com
Apache PHP MySQL PhpMyAdmin EasyPHP Xampp AppServ Wamp W3School

www.phpdefteri.com © 2010