Lajiverta Academy Satın Al — 499₺

Academy 🗄️ SQL & Veritabanı SELECT'in Gücü

DISTINCT: benzersiz değerler

🔎 SELECT'in Gücü bölümü · Code Quest SQL & Veritabanı parkuru

Bazen "bu sütunda kaç farklı değer var?" diye sorarsın. 24 satışta hangi farklı adetler geçiyor? Oyuncular hangi şehirlerden? İşte DISTINCT tam bunun içindir: tekrarları eler.

SQL
SELECT DISTINCT adet
FROM satislar;
▸ SONUÇ
adet
────
   1
   2
   3

24 satış vardı ama sadece 3 satır geldi: adetler yalnızca 1, 2 ve 3 olabiliyormuş. Tek bir kelimeyle veriyi keşfettin — DISTINCT, yeni bir veritabanını tanımanın en hızlı yoludur.

SQL
SELECT DISTINCT sehir
FROM oyuncular;
▸ SONUÇ
sehir
────────
İstanbul
Ankara
İzmir
Bursa
NULL
Adana
💡 DISTINCT, NULL'ı da bir değer gibi sayar ve listede bir kez gösterir. "Şehri bilinmeyen oyuncular var" bilgisini böyle yakalarsın.

DISTINCT SELECT'ten hemen sonra yazılır ve bütün sütun listesine uygulanır — tek bir sütuna değil. Yani birden çok sütun seçersen, "satırın tamamı benzersiz olsun" demiş olursun.

SQL
SELECT DISTINCT tur_id
FROM oyunlar;
▸ SONUÇ
tur_id
──────
     3
     4
     1
     2
     5
  NULL

Sonuçların sırasına dikkat: 1, 2, 3 diye gelmedi. SQL sana sıra sözü vermez! Satırların hangi düzende geleceği motorun keyfine kalmıştır. Sıra istiyorsan açıkça istemelisin — bu, 4. bölümün konusu olan ORDER BY.

⚠️ DISTINCT kullanırken dikkatli ol: büyük tablolarda motoru yorar ve çoğu zaman gereksizdir. "Kaç farklı" sorusunun cevabını 6. bölümde COUNT(DISTINCT ...) ile tek satırda alacaksın.

Kendini test et

DISTINCT ne yapar?

  • Satırları sıralar
  • Tekrar eden satırları eleyip benzersizleri getirir
  • Satırları sayar
Cevabı gör

Cevap: Tekrar eden satırları eleyip benzersizleri getirir

DISTINCT tekrarları eler. Saymak COUNT'un, sıralamak ORDER BY'ın işidir.

Doğru mu, yanlış mı? — DISTINCT, NULL değerini de sonuçta bir kez gösterir.

Cevabı gör

Cevap: Doğru

DISTINCT açısından NULL da bir "değer"dir ve listede tek bir kez yer alır.