1.9.1 Standart fonksiyonlar AVG() Verilen alanın aritmetik ortalamasını alır.  mysql>SELECT AVG(yas) FROM employee where bolum=’Halkla İlişkiler’; Yukarıdaki sorgu halkla ilişkiler bölümünde çalışan personelin yaş ortalamasını verecetir. AVG() fonksiyonu istenen alandaki verilerin aritmetik ortasını görüntüler. SUM() Verilen alanların toplamını alır. mysql>SELECT SUM(maas) FROM employee WHERE bolum=’Bilgi İşlem’;

Yukarıdaki sorgu bilgi işlem bölümünde çalışan tüm personelin maaşlarının toplamını görüntüler. MIN() 

Verilen alanın kayıtlar arasındaki en küçük değerini verir.

 mysql>SELECT MIN(maas) AS enazmaas FROM employee WHERE bolum=’Bilgi İşlem’;

Yukarıdaki sorgu bilgi işlem bölümünda çalışan ve en düşük maaşı alan personeli görüntüler. MAX() Verilen alanın kayıtlar arasındaki en büyük değerini verir. mysql>SELECT MAX(maas) FROM employee WHERE bolum=’Bilgi İşlem’; Yukarıdaki sorgu bilgi işlem bölümünda çalışan ve en yüksek maaşı alan personelin maaşını görüntüler. COUNT() Verilen alanın kayıtlar arasında kaç defa yazıldığını bulur

Eğer şirketin basın yayın bölümünde çalışan evli ve maaşı 500 YTL’den az olan kişilerin sayısını öğrenmek istiyorsak aşağıdaki sorgu işimizi görecektir. mysql>SELECT COUNT(*) FROM employee WHERE maas<500 AND  medeni_hal=’evli’ AND bolum=’Basın Yayın’
ROUND () 

Verilen alanın virgülden sonraki değerini yuvarlarlar. Tamsayı kısmını verir.

mysql> select round(15.56);     >16   1.9.2 Tarih Ve Zaman Fonksiyonları  ADDDATE Bu fonksiyon tarih hesaplama işlemleri için kullanılır. Bu fonksiyonla aynı çalışan DATE_SUB() DATE_ADD() SUBDATE() Fonksiyonları vardır. ADDDATE() ve SUBDATE(), DATE_ADD() ve DATE_SUB() fonksiyonlarının eşanlamlılarıdır. Bunu kullanmanız için yazım formatının sağ tarafındaki tip DATE veya DATETIME olmalıdır. Burada kullanılan tarih, DATETIME (tarihzaman) ya da DATE (tarih) değeridir. Bunlar başlangıç değerini belirler. Yazım Formatı INTERVAL değerini belirler… Bu değer başlangıç değerine eklenir veya çıkarılır.

                                                                                                       Resim 1.4

            Yazım Formatı; bir işaretler grubudur… Bu negatif INTERVAL’ler için ‘-’ ile başlayabilir. tip; ise bir anahtar kelimedir… Bu yazım formatının nasıl yorumlanacağını gösterir. EXTRACT(tip FROM tarih) fonksiyonuyla INTERVAL tipini öğrenebilirsiniz.Yazım Formatında; Gün, Ay, Yıl, Saat, Dakika, Saniye gibi Değerleri Ayırmada Kullanılan İşaretler Yerine, İstediğiniz Noktalama İşaretlerini Kullanabilirsiniz. Aşağıda Verilen Parametreler Bölümündeki Yazım Şekli Önerilendir. ‘Saatler: Dakikalar: Saniyeler’ Yerine ‘Saatler. Dakikalar. Saniyeler’ veya ‘Saatler, Dakikalar, Saniyeler’ gibi kullanabilirsiniz.
            Fonksiyona girilen tarih değeri DATE ise ve hesaplamalarda kullandığınız tip YEAR, MONTH ve DAY ise (Yani TIME bölümleri değilse); hesaplamalar sonucunda döndürülen değer DATE formatındadır.                                  
Bunun dışındakilerde döndürülen değer TIME formatındadır.
 Kullanımı:ADDDATE(tarih,INTERVAL expr tip)
ADDDATE(expr,gün)
ADDDATE(tarih, INTERVAL yazım formatı tip)

Bu fonksiyonla aynı çalışan diğer fonksiyonlar
DATE_SUB(tarih, INTERVAL yazım formatı tip)
SUBDATE(tarih, INTERVAL yazım formatı tip)
DATE_ADD (tarih, INTERVAL yazım formatı tip)

Örnek;mysql> SELECT DATE_ADD(’1998-01-02′, INTERVAL 31 DAY);
        -> ‘1998-02-
02′
mysql> SELECT ADDDATE(’1998-01-
02′, INTERVAL 31 DAY);
        -> ‘1998-02-
02′ Parametreler;  

Tip Adı YAZIM FORMATI
MICROSECOND : Mikrosaniyeler
SECOND : Saniyeler
MINUTE : Dakikalar
HOUR : Saatler
DAY : Günler
WEEK : Haftalar
MONTH : Aylar
QUARTER : Çeyrekler
YEAR : Yıllar
SECOND_MICROSECOND : Saniyeler.Mikrosaniyeler
MINUTE_MICROSECOND : Dakikalar.Mikrosaniyeler
MINUTE_SECOND : Dakikalar:Saniyeler
HOUR_MICROSECOND : Saatler.Mikrosaniyeler
HOUR_SECOND : Saatler:Dakikalar:Saniyeler
HOUR_MINUTE : Saatler:Dakikalar
DAY_MICROSECOND : Günler.Mikrosaniyeler
DAY_SECOND : Günler Saatler:Dakikalar:Saniyeler
DAY_MINUTE : Günler Saatler:Dakikalar
DAY_HOUR : Günler Saatler
YEAR_MONTH : Yıllar-Aylar

                                                

            Tablo 1.4 Tarih zaman parametreleri

Örnek;<?php
  $tarih = ’2005-01-
31′;
  $sql = mysql_query(”SELECT ADDDATE(’$tarih’, INTERVAL 1 DAY) AS tarih”);
  $sonuc = mysql_fetch_object($sql);
  echo $sonuc->tarih;
  //Sonuç: 2005-02-01
?>
  ADDTIMEADDTIME(expr,expr2)ADDTIME() Fonksiyonu expr2 değerini expr değerine ekler ve sonucu döndürür…Kullanımı;expr : TIME (zaman) ya da DATETIME (tarihzaman) olabilir.. expr2 :  ise sadece TIME (zaman) dır…ADDTIME(expr,expr2)Örnek;mysql> SELECT ADDTIME(’1997-12-31 23:59:59.999999′, ‘1 1:1:1.000002′);
    -> ‘1998-01-02 01:01:01.000001′

mysql> SELECT ADDTIME(’01:00:00.999999′, ‘02:00:00.999998′);
    -> ‘03:00:01.999997′ CURDATEBu günün tarihini ‘YYY-MM-DD’ veya ‘YYYYMMDD’ formatında döndürür. Kullanımı;mysql> SELECT CURDATE();
    -> ‘1997-12-
15′
mysql> SELECT CURDATE() + 0;
    -> 19971215
   CURRENT_DATEBu günün tarihini ‘YYYY-MM-DD’ veya ‘YYYYMMDD’ formatında verir. CURRENT_DATE ve CURRENT_DATE(), CURDATE() fonksiyonunun eşanlamlılarıdır. Kullanımı;mysql> SELECT CURRENT_DATE();
    -> ‘2005-10-
03′
mysql> SELECT CURRENT_DATE() + 0;
    -> 20051003
 CURRENT_TIMECURRENT_TIME ve CURRENT_TIME() Fonksiyonları; CURTIME Fonksiyonunun eşanlamlısıdır. CURRENT_TIMESTAMPCURRENT_TIMESTAMP ve CURRENT_TIMESTAMP(), NOW() Fonksiyonunun Eşanlamlılarıdır. Bunlar şimdiki tarihi ve zamanı verirler. Kullanımı;mysql>select CURRENT_TIMESTAMP();
    ->2005-10-03 14:50:59
mysql>select CURRENT_TIMESTAMP;
    ->2005-10-03 14:50:59
 CURTIMEGeçerli saati ‘HH: MM: SS’ veya ‘HHMMSS formatında döndürür. Kullanımı:mysql> SELECT CURDATE();
    -> ‘1997-12-
15′
mysql> SELECT CURDATE() + 0;
    -> 19971215
 DATEDATE (Tarih) veya DATETIME (Tarih Zaman) İfadesinden Tarihi Çıkarır.
Bu fonksiyon MySQL 4.1.1 de kullanılır.
 Kullanımı:mysql> SELECT DATE(’2003-12-31 01:02:03′);     -> ‘2003-12-31′ DATEDIFFİki tarih arasındaki farkı alır. Kullanımı:mysql> SELECT DATEDIFF(’1997-12-31 23:59:59′,’1997-12-30′);
    -> 1
mysql> SELECT DATEDIFF(’1997-11-30 23:59:59′,’1997-12-
31′);
    -> -31
 DATE_ADDBu fonksiyon tarih hesaplama işlemleri için kullanılır.Bu fonksiyonla aynı çalışan DATE_SUB(), ADDDATE() ,SUBDATE() Fonksiyonları vardır.ADDDATE() ve SUBDATE(), DATE_ADD() ve DATE_SUB() fonksiyonlarının eşanlamlılarıdır.
Yazım Formatı INTERVAL değerini belirler. Bu değer başlangıç değerine eklenir veya çıkarılır.

Yazım Formatında; Gün, Ay, Yıl, Saat, Dakika, Saniye gibi Değerleri Ayırmada Kullanılan İşaretler Yerine, İstediğiniz Noktalama İşaretlerini Kullanabilirsiniz.. Aşağıda Verilen Parametreler Bölümündeki Yazım Şekli Önerilendir. ‘Saatler: Dakikalar: Saniyeler’ Yerine ‘Saatler. Dakikalar. Saniyeler’ veya Saatler, Dakikalar, Saniyeler’ gibi kullanabilirsiniz. Fonksiyona girilen tarih değeri DATE ise, ve hesaplamalarda kullandığınız tip YEAR, MONTH ve DAY ise hesaplamalar sonucunda döndürülen değer DATE formatındadır. Bunun dışındakilerde döndürülen değer TIME formatındadır. DATE_ADD(date,INTERVAL expr type)
DATE_ADD (tarih, INTERVAL yazım formatı tip)

Bu fonksiyonla aynı çalışan diğer fonksiyonlar
DATE_SUB(tarih, INTERVAL yazım formatı tip)
ADDDATE(tarih, INTERVAL yazım formatı tip)
SUBDATE(tarih, INTERVAL yazım formatı tip)
 Örnek: MySQL’de Tarih Hesaplama İşlemleri<?php
mysql> SELECT ”1997-12-31 23:59:59″ + INTERVAL 1 SECOND;
    -> 1998-01-01 00:00:00 ->Verilen DATETIME Değerine 1 Saniye Ekleniyor…
mysql> SELECT INTERVAL 1 DAY + ”1997-12-31″;
    -> 1998-01-01 -> Verilen DATE Değerine 1 Gün Ekleniyor
mysql> SELECT ”1998-01-01″ - INTERVAL 1 SECOND;
    -> 1997-12-31 23:59:59 -> Verilen DATE veya DATETIME Değerine 1 Saniye Ekleniyor ve Sonucu DATETIME Formatında Veriyor.
mysql> SELECT DATE_ADD(”1997-12-31 23:59:59″,INTERVAL 1 SECOND);
    -> 1998-01-01 00:00:00 -> Verilen DATETIME Değerine 1 Saniye Ekleniyor
mysql> SELECT DATE_ADD(”1997-12-31 23:59:59″, INTERVAL 1 DAY); 
    -> 1998-01-01 23:59:59 ->Verilen DATETIME Değerine 1 Gün Ekleniyor
mysql> SELECT DATE_ADD(”1997-12-31 23:59:59″, INTERVAL ”1:1″ MINUTE_SECOND);
    -> 1998-01-01 00:01:00 -> Verilen DATETIME Değerine 1 Dakika 1 Saniye Ekleniyor
mysql> SELECT DATE_SUB(”1998-01-01 00:00:00″,
                INTERVAL ”1 1:1:1″ DAY_SECOND);
    -> 1997-12-30 22:58:59 -> Verilen DATETIME Değerinden 1 Gün 1 Saat:1Dakika:1 Saniye Çıkarılıyor 
mysql> SELECT DATE_ADD(”1998-01-01 00:00:00″,
                       INTERVAL ”-1 10″ DAY_HOUR);
        -> 1997-12-30 14:00:00 -> Verilen DATETIME Değerinden 1 Gün, 1 Saat Çıkarılıyor
mysql> SELECT DATE_SUB(”1998-01-02″, INTERVAL 31 DAY);
        -> 1997-12-02 -> Verilen DATE Değerinden 31 Gün Çıkarılıyor

?> Örnek: DATE_ADD() Kullanım Örnekleri<?php
  /*
  MySQL’deki tarih alanı datetime olarak ayarlandığını varsayarsak….
  +———————+
  | tarihalani          |
  +———————+
  | 2004-12-31 23:59:59 |
  +———————+
  */
  $sorgu = mysql_query(”SELECT tarihalani + INTERVAL 1 SECOND”); //Tarihe 1 Saniye Ekler
           // ’2005-01-01 00:00:00′
  $sorgu = mysql_query(”SELECT INTERVAL 1 DAY + tarihalani”); //Tarihe 1 Gün Ekler
           // ’2005-01-
01′
  $sorgu = mysql_query(”SELECT tarihalani - INTERVAL 1 SECOND; //Tarihten 1 Saniye Çıkarır
           // ’2004-12-31 23:59:58′
  $sorgu = mysql_query(”SELECT DATE_ADD(tarihalani,INTERVAL 1 SECOND); //Tarihe 1 Saniye Ekler
           // ’2005-01-01 00:00:00′
  $sorgu = mysql_query(”SELECT DATE_ADD(tarihalani,INTERVAL 1 DAY)”); //Tarihe 1 Gün Ekler
           // ’2005-01-01 23:59:59′
$sorgu = mysql_query(”SELECT DATE_ADD(tarihalani,INTERVAL ’1:1′ MINUTE_SECOND)”);//Tarihe 1 Dakika 1 Saniye Ekler
           // ’2005-01-01 00:01:00′
  $sorgu = mysql_query(”SELECT DATE_ADD(tarihalani,INTERVAL ’-1 10′ DAY_HOUR)”); //Tarihden 1 Gün 10 Saat Çıkarır
         // ’2004-12-30 14:59:59′
  $sorgu = mysql_query(”SELECT DATE_ADD(’1992-12-31 23:59:59.000002′,INTERVAL ’1.999999′ SECOND_MICROSECOND)”);//Tarihden 1 Saniye 999999 Mikrosaniye Ekler
           // ’1993-01-01 00:00:01.000001′
?>