Çeşitli Fonksiyonlar

Bu sayfada yer verdiğimiz tüm fonksiyonlar SELECT ile FROM arasında yer alan sütunları listelediğimiz alanda kullanılabilirler. Genel olarak sütunlardaki en yüksek, en düşük, toplam değerleri bulmamıza yararlar.

Benzerleri Ayırmak (DISTINCT)

Bazen veriler arasındaki benzerlikleri kaldırarak sadece benzer olmayanları listeletmek isteyebiliriz. Böyle durumlarda SELECT DISTINCT yapısı kullanılır:

Aşağıdaki verilere sahip bir "uyeler" tablomuz olduğunu düşünürsek:

SQL Kodu

SELECT * FROM uyeler;

+----+-------+----------+
| id | isim  | meslek   |
+----+-------+----------+
| 1  | Hasan | Avukat   |
| 2  | Merve | Öğretmen |
| 3  | Nazım | Öğretmen |
| 4  | Efe   | Polis    |
| 5  | Caner | Polis    |
+----+-------+----------+
Ve bu tabloda kaç meslek dalı olduğunu sorgulatmak istiyorsak:


   

Bu komut ile aynı işlevi gören GROUP BY sütun_adı ile de benzerler ayıklanabilir:

SQL Kodu

SELECT DISTINCT meslek FROM uyeler;

+----------+
| meslek   |
+----------+
| Avukat   |
| Öğretmen |
| Polis    |
+----------+

Kayıtların İçerdiği En Düşük ve En Yüksek Değerler

Bir sütundaki kayıtların en düşük değerini bulmak için MIN(sütun_adı), en yüksek değerini bulmak için MAX(sütun_adı) fonksiyonlarını kullanırız:

Aşağıdaki verilere sahip bir "uyeler" tablomuz olduğunu düşünürsek:

SQL Kodu

mysql> SELECT * FROM uyeler;

+----+-------+-----+
| id | isim  | yas |
+----+-------+-----+
| 1  | Ali   | 39  |
| 2  | Gözde | 28  |
| 3  | Sevim | 24  |
| 4  | Ayşe  | 32  |
| 5  | Halil | 48  |
| 6  | Ece   | 24  |
+----+-------+-----+
Buradaki en düşük yaşı bulmak için:

SQL Kodu

SELECT MIN(yas) FROM uyeler;

+----+-------+
| MIN(yas)   |
+----+-------+
| 24         |
+------------+
En yüksek yaşı bulmak için:

SQL Kodu

SELECT MAX(yas) FROM uyeler;

+----+-------+
| MAX(yas)   |
+----+-------+
| 48         |
+------------+

Sütunlardaki Değerlerin Toplamını ya da Ortalamasını Bulmak

Yine yukarıdaki tabloya göre herkesin yaşları toplamını hesaplatmak istiyorsak (sütunların içerdiği değerler toplamı) SUM(sütun_adı) fonksiyonundan yararlanırız:


   

Yaşların ortalamasını hesap etmek isteseydik AVG(sütun_adı) fonksiyonu istediğimiz ortalamayı bize verecekti.

SQL Kodu

SELECT SUM(yas) FROM uyeler;

+----+-------+
| SUM(yas)   |
+----+-------+
| 195        |
+------------+
Burada anlattığımız MAX, MIN, SUM, AVG fonksiyonları ayrıca işlem yapmak için de kullanılabilir. Bu durumda sonuçlar yaptığımız işlemin sonucu olarak görünecektir:

SQL Kodu

SELECT SUM(yas) / AVG(yas) FROM uyeler;

+----+-------+
| AVG(yas)   |
+----+-------+
| 6          |
+------------+

Toplam Kayıt Sayısını Bulmak

Bunun için COUNT(sütun_adı) kullanılır:

SQL Kodu

SELECT COUNT(id) FROM uyeler;

+----+------+
| COUNT(id) |
+----+------+
| 6         |
+-----------+

Değişkenli Yapılar Oluşturmak

MySQL'de CONCAT(yazilar) komutu yardımıyla sonuçların istediğimiz bir formatta olmasını sağlayabiliriz.

Aşağıdaki gibi bir "uyeler" tablomuz olsaydı:

SQL Kodu

SELECT * FROM uyeler;

+----+-------+----------+
| id | isim  | soyad    |
+----+-------+----------+
| 1  | Seda  | Ekinci   |
| 2  | Merve | Demirkan |
| 3  | Cemil | Hikmet   |
+----+-------+----------+
Ve eğer amacımız isim ve soyadların birleştiği bir sorgu sütunu oluşturmak olsaydı, şu tarz bir sorgu işimizi görecekti:

SQL Kodu

SELECT CONCAT(isim, " ", soyad) FROM uyeler;

+--------------------------+
| CONCAT(isim, " ", soyad) |
+--------------------------+
| Seda Ekinci              |
| Merve Demirkan           |
| Cemil Hikmet             |
+--------------------------+