🟢 SELECT & Sıralama

SELECT & Sıralama: SELECT, bir müdürün asistanına 'geçen hafta staging ortamında 3 saniyeden uzun süren ve başarısız olan testleri en yavaştan başlayarak getir' demesi gibidir —

SELECT, bir müdürün asistanına 'geçen hafta staging ortamında 3 saniyeden uzun süren ve başarısız olan testleri en yavaştan başlayarak getir' demesi gibidir — sen sadece sonucu tarif edersin, asistan (veritabanı motoru) hangi reyonlara, hangi sırayla bakacağını kendi çözer. Peki Java'da zaten `stream().filter().sorted()` zincirleri var, neden SQL'e gerek var? Çünkü Java'da önce tüm satırları belleğe çekmen, sonra filtrelip sıralaman gerekir; milyonlarca satırda bu hem yavaş hem de hafızayı patlatır. SQL motoru aynı işlemi index kullanarak diskte yapar — çekilen veri miktarı küçülür, sorgu milisaniyeler içinde döner. Java `stream().filter(t -> t.status.equals("FAIL") && t.durationMs > 3000).sorted(Comparator.comparingInt(t -> -t.durationMs))` yazarken SQL'de tek bir SELECT ile aynı sonucu alırsın. Bir QA mühendisi olarak SELECT'i en sık test sonuçlarını doğrulamak için kullanırsın: UI 'başarılı' dese bile `SELECT * FROM test_results WHERE status = 'FAIL' AND run_date >= NOW() - INTERVAL 1 HOUR` sorgusu, son bir saatteki gerçek durumu sana söyler.

Micro Lab: SQL — Veri sorgulama

TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.

Adim Adim: SQL — Veri sorgulama

FROM ile hangi tablodan veri cekecegini belirle

WHERE ile satrılari filtrele — calistirilacak ilk mantiksal adim

SELECT ile hangi sutunları gorecegini sec — * yerine acik sutun adi yaz

ORDER BY ile siralama sutununu ve yonunu (ASC/DESC) belirle

LIMIT ile donecek maksimum satir sayisini kisıtla

SQL SELECT sorgusunun yurutme sirasi nedir?

Veri Seçme, Sıralama ve Sınırlandırma

Veritabanından veri okurken SELECT komutunu kullanırız: - **Sütun Seçimi**: `SELECT *` tüm sütunları getirirken, performansı artırmak için sadece ihtiyacımız olan sütunları (`SELECT name, status`) seçmek en iyi pratiktir. - **Sıralama (ORDER BY)**: Verileri belirli bir sütuna göre artan (`ASC`, varsayılan) veya azalan (`DESC`) sırada sıralamamızı sağlar. - **Sınırlandırma ve Sayfalama (LIMIT & OFFSET)**: `LIMIT 10` sorgunun en fazla 10 satır döndürmesini sağlar. `OFFSET 20` ise ilk 20 satırı atlayıp sonrasını getirmek için kullanılır (örneğin sayfalama yaparken). - **Tekrarları Önleme (DISTINCT)**: Sütundaki tekrarlanan değerleri eleyerek sadece benzersiz değerleri listeler (örn: `SELECT DISTINCT status`).

🎬 SELECT: Önce Filtrele, Sonra Sırala

Tabloda hem PASS hem FAIL satırları var. Amacımız: sadece FAIL olanları, en uzun süren en üstte olacak şekilde görmek.