unsigned Nedir

Tüm integer tipler için kullanılabilir. Bir alan unsigned olarak işaretlendiğinde sadece pozitif değer alabilir.
Örneğin tinyint alan unsigned olarak işaretlendiğinde 0 ile 255 arasında bir değer alabilir. Normalde tinyint bir alan -128 ile 127 arasında bir değer alabilir.

Index Kullanımı

Belirli sutunlardaki değerleri hızlıca bulmak için kullanılır. Eğer sutun index olarak tanımlanmamışsa mysql ilk kayıttan aranan kayıta kadar tüm satırları tarar. Eğer sutun index olarak tanımlanmışsa mysql rastgele arama yapabilir, bu da sorgunun hızlanmasını sağlar.

Örneğin, öğrenciler tablosu aşağıdaki gibi olsun. Sorgularımızda adi alanını çok fazla kullandığımızdan bu kolonu indexleyelim.


mysql > ALTER TABLE ogrenciler ADD INDEX(adi)

+-----+-----+------+

| id  | adi |notu    |

+-----+-----+------+

| 123 |Veli |60    |

| 124 |Veli |70    |

| 125 |Ali  |80    |

| 126 |Ali  |30    |

| 127 |Hasan|61    |

+-----+-----+------+

HAVING Kullanımı

Having cümleciği ile grup kriterleri tanımlanır, gruplanmış kolonlardaki veriler where cümleciği ile filtrelenemez, bunun yerine having cünleciği kullanılır.


Örneğin, öğrenciler tablosu aşağıdaki gibi olsun.

+-----+-----+------+

| id  | adi |notu  |

+-----+-----+------+

| 123 |Veli |60    |

| 124 |Veli |70    |

| 125 |Ali  |80    |

| 126 |Ali  |30    |

| 127 |Hasan|61    |

+-----+-----+------+

not ortalaması 60 dan büyük olan öğrencileri bulmak isteyelim.

mysql> SELECT adi, AVG(notu) FROM ogrenciler GROUP BY adi HAVING AVG(notu) > 60

+-----+------+

| adi |notu  |

+-----+------+

|Hasan|61    |

|Veli |65    |

+-----+------+

AVG Fonksiyonu

AVG([DISTINCT] expr)

expr ile verilen kolondaki değerlerin aritmetik ortalamasını döndürür. DISTINCT parametresi opsiyoneldir, verilirse kolondaki benzersiz değerlerin aritmetik ortalaması alınır. Eşleşen satır bulunamazsa null döndürür.


Öğrenciler tablosu aşağıdaki gibi olsun.

+-----+-----+------+

| id  | adi |notu  |

+-----+-----+------+

| 123 |Veli |60.5  |

| 124 |Veli |73.5  |

| 125 |Ali  |87.5  |

| 126 |Ali  |45.5  |

| 127 |Hasan|55.5  |

+-----+-----+------+

her öğrencinin not ortalamasını bulmak isteyelim.

mysql> SELECT adi, AVG(notu) FROM ogrenciler GROUP BY adi

+-----+------+

| adi |notu  |

+-----+------+

|Ali  |66.5  |

|Hasan|55.5  |

|Veli |67.5  |

+-----+------+

MySql DATE_ADD Fonksiyonu

DATE_ADD(tarih,INTERVAL ifade birim)

Tarih hesaplamaları için kullanılır.

Tarih paremetresi başlangıç değeridir. Date veya Datetime tipinde bir değer almalıdır.

İkince parametre ise iki bölümden oluşur.
Birim ve ifade parametreleri için değerler aşağıdadır.

Örneğin, datetime türünde bir alanımız -tarih adında- olsun, şimdiki andan 12 saat önceki ve 12 saat sonraki kayıtları çekmek isteyelim.

SELECT * FROM tablom WHERE tarih < DATE_ADD(NOW(), INTERVAL 12 HOUR) AND tarih >DATE_ADD(NOW(), INTERVAL -12 HOUR);
Birim değeri beklenen ifade değeri
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