🟢 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.