Veritabanından veri çekmenin en yaygın yolu SQL'dir. sql sorgu yazımı rehberi olarak bu sayfa, SELECT, WHERE ve JOIN komutlarını gerçek örneklerle açıklıyor. **Temel sorgu yapısı** ```sql SELECT sutun1, sutun2 FROM tablo_adi WHERE kosul; ``` **Adım 1, SELECT ile sütun seçin** Tablodaki tüm sütunları görmek için: ```sql SELECT * FROM musteriler; ``` Yalnızca belirli sütunları görmek için: ```sql SELECT ad, soyad, email FROM musteriler; ``` `*` performansı düşürür; sadece gereken sütunları yazın. **Adım 2, WHERE ile filtreleyin** Sql sorgu yazımı rehberinde WHERE en çok kullanılan komuttur: ```sql SELECT ad, soyad FROM musteriler WHERE sehir = 'İstanbul'; ``` Birden fazla koşul: ```sql SELECT * FROM siparisler WHERE tutar > 500 AND durum = 'teslim edildi'; ``` **Adım 3, ORDER BY ile sıralayın** ```sql SELECT ad, tutar FROM siparisler ORDER BY tutar DESC; -- büyükten küçüğe ``` `ASC` küçükten büyüğe, `DESC` büyükten küçüğe demektir. **Adım 4, JOIN ile tabloları birleştirin** İki tablo arasında ortak bir sütun varsa JOIN kullanırsınız: ```sql SELECT musteriler.ad, siparisler.tutar FROM musteriler INNER JOIN siparisler ON musteriler.id = siparisler.musteri_id; ``` - **INNER JOIN:** Yalnızca eşleşen kayıtları getirir - **LEFT JOIN:** Sol tablodaki tüm kayıtları, sağdaki eşleşmezse NULL getirir **Adım 5, Sonuç sayısını sınırlayın** ```sql SELECT * FROM urunler LIMIT 10; ``` Geliştirme ve test sırasında LIMIT kullanın; büyük tablolarda tüm satırları çekmek yavaşlatır. **Adım 6, Toplu hesaplamalar** ```sql SELECT sehir, COUNT(*) AS siparis_sayisi FROM siparisler GROUP BY sehir HAVING COUNT(*) > 5; ``` `GROUP BY` gruplama yapar, `HAVING` gruplanmış sonuçları filtreler (WHERE'nin GROUP BY sonrası karşılığı). **Yaygın hatalar** - `WHERE` yerine `HAVING` kullanmak ya da tersini, GROUP BY olmadan HAVING çalışmaz - JOIN koşulunu yanlış yazmak, tablo çapraz çarpımına (kartezyen çarpım) yol açar, milyonlarca satır üretebilir - Büyük-küçük harf: SQL anahtar kelimeleri büyük harf alışkanlığı okunabilirliği artırır ama zorunlu değil