
SQL'de alt sorgular (subqueries) ve karmaşık sorgular, veriyi daha esnek bir şekilde sorgulamak ve analiz etmek için kullanılır. Alt sorgular, bir başka sorgunun içinde bulunan iç içe geçmiş sorgulardır ve özellikle filtreleme, veri manipülasyonu ve hesaplamalar için kullanılır.
Bu yazıda, alt sorguların kullanım alanlarını ve karmaşık sorgu tekniklerini anlatacağım. Bunu kimse anlatmaz demedi demeyin :)
Bu sorgu, 2024-01-01 tarihinden sonra sipariş veren müşterileri getirir.
Bu sorgu, her şehirdeki müşterilerin ortalama yaşlarını hesaplayarak yeni bir sanal tablo oluşturur ve bu tabloyu ana sorguda kullanır.
Bu sorgu, sadece siparişi olan müşterileri ve onların sipariş tarihlerini listeler.
Bu sorgu, siparişi olsun ya da olmasın tüm müşterileri getirir. Eğer müşteri hiç sipariş vermemişse
Bu sorgu, siparişi olan tüm kayıtları listeler. Eğer siparişi olmayan müşteri varsa, o müşteri sonuç kümesine dahil edilmez.
Bu sorgu, hem siparişi olan hem de siparişi olmayan tüm müşterileri ve tüm siparişleri listeler. Eğer bir müşteri sipariş vermemişse
Bu sorgu, her müşteriyi her ürünle eşleştirerek tüm olası kombinasyonları listeler.
Bu sorgu, İstanbul ve Ankara'da yaşayan müşterileri tek bir sonuç kümesinde birleştirir.
Bu sorgu, müşterilerin yaşlarına göre hangi yaş grubuna ait olduğunu belirler.
Alt sorgular ve karmaşık sorgular, SQL'in gücünü artıran önemli tekniklerdir. WHERE, FROM, HAVING ve SELECT ifadelerinde alt sorgular kullanarak veri analizi yapabiliriz. Ayrıca JOIN, UNION, CASE ve CTE gibi yapılar ile sorgular daha güçlü hale getirilebilir.
1. Alt Sorgular Nedir?
Alt sorgular, SELECT, INSERT, UPDATE ve DELETE gibi SQL ifadelerinde kullanılabilen iç içe geçmiş sorgulardır. Ana sorgunun bir parçası olarak çalışırlar ve bir değeri veya veri kümesini döndürebilirler. Alt sorgular genellikle şu şekilde kullanılır:- WHERE koşulu içinde
- FROM ifadesinde bir sanal tablo olarak
- HAVING koşulu içinde
- SELECT içinde hesaplama yapmak için
1.1 WHERE İçinde Alt Sorgular
Bir alt sorgu, WHERE ifadesi içinde kullanılarak belirli kriterleri karşılayan verileri seçmek için kullanılabilir. Örnek:
SQL
SELECT * FROM Musteriler
WHERE ID IN (SELECT MusteriID FROM Siparisler WHERE SiparisTarihi > '2024-01-01');
1.2 FROM İçinde Alt Sorgular (Sanal Tablolar)
Alt sorgular, FROM ifadesinde kullanılarak geçici bir sanal tablo (derived table) oluşturulabilir. Örnek:
SQL
SELECT Sehir, OrtalamaYas FROM
(SELECT Sehir, AVG(Yas) AS OrtalamaYas FROM Musteriler GROUP BY Sehir) AS SehirBazliYas;
2. JOIN ile Tabloları Birleştirme
SQL’de farklı tablolar arasında ilişki kurarak verileri birleştirmek için JOIN kullanılır.2.1 INNER JOIN
INNER JOIN, iki tabloda eşleşen kayıtları getirir. Örnek:
SQL
SELECT Musteriler.Ad, Siparisler.SiparisTarihi
FROM Musteriler
INNER JOIN Siparisler ON Musteriler.ID = Siparisler.MusteriID;
2.2 LEFT JOIN
LEFT JOIN, sol (birinci) tablodaki tüm kayıtları getirir, sağ (ikinci) tabloda eşleşme yoksa NULL döndürür. Örnek:
SQL
SELECT Musteriler.Ad, Siparisler.SiparisTarihi
FROM Musteriler
LEFT JOIN Siparisler ON Musteriler.ID = Siparisler.MusteriID;
SiparisTarihi
sütunu NULL olur.
2.3 RIGHT JOIN
RIGHT JOIN, sağ (ikinci) tablodaki tüm kayıtları getirir, sol (birinci) tabloda eşleşme yoksa NULL döndürür. Örnek:
SQL
SELECT Musteriler.Ad, Siparisler.SiparisTarihi
FROM Musteriler
RIGHT JOIN Siparisler ON Musteriler.ID = Siparisler.MusteriID;
2.4 FULL OUTER JOIN
FULL OUTER JOIN, her iki tablodaki tüm kayıtları getirir. Eşleşmeyen kayıtlar için NULL döndürülür. Örnek:
SQL
SELECT Musteriler.Ad, Siparisler.SiparisTarihi
FROM Musteriler
FULL OUTER JOIN Siparisler ON Musteriler.ID = Siparisler.MusteriID;
SiparisTarihi
NULL olur, eğer bir sipariş bir müşteriyle eşleşmiyorsa Ad
NULL olur.
2.5 CROSS JOIN
CROSS JOIN, iki tablodaki her satırın diğer tabloyla tüm kombinasyonlarını oluşturur. Örnek:
SQL
SELECT Musteriler.Ad, Urunler.UrunAdi
FROM Musteriler
CROSS JOIN Urunler;
3. Karmaşık Sorgular
Karmaşık sorgular, birden fazla alt sorgu, JOIN, UNION, CASE ve CTE (Common Table Expressions) gibi tekniklerin kombinasyonu ile oluşturulan güçlü sorgulardır.3.1 UNION ile Veri Kümesi Birleştirme
UNION operatörü, birden fazla sorgunun sonuçlarını tek bir sonuç kümesinde birleştirmek için kullanılır. Örnek:
SQL
SELECT Ad, Soyad FROM Musteriler WHERE Sehir = 'Istanbul'
UNION
SELECT Ad, Soyad FROM Musteriler WHERE Sehir = 'Ankara';
3.2 CASE ile Koşullu İfade Kullanımı
CASE ifadesi, bir sorgu içindeki verileri koşullara göre değiştirmek için kullanılır. Örnek:
SQL
SELECT Ad, Soyad, Yas,
CASE
WHEN Yas < 18 THEN 'Çocuk'
WHEN Yas BETWEEN 18 AND 65 THEN 'Yetişkin'
ELSE 'Yaşlı'
END AS YasGrubu
FROM Musteriler;
Benzer Yazılar

SQL ile Veri Sorgulama Teknikleri
0 Yorumlar
Yorumlar ()
Henüz yorum yok. İlk yorum yapan sen ol!