sql,alt sorgular,veritabanı,query,programlama

0 Yanıt 5 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
SQL Alt Sorgular Nasıl Kullanılır?

SQL'de alt sorgular (subqueries), temel sorguların içinde başka bir sorgu kullanarak karmaşık veri analizleri ve filtrelemeleri yapmamıza imkan tanır. Bu yapı, özellikle bir sorgunun sonucuna göre başka bir sorgu çalıştırmak veya daha detaylı filtrelemeler yapmak istediğinizde hayat kurtarır.

Genel anlamda, alt sorgular iki ana kategoride incelenebilir: düzenli alt sorgular ve korelasyonlu alt sorgular. Düzenli alt sorgular, ana sorgudan bağımsızdır ve genellikle parantez içinde kullanılır. Örneğin, belirli bir değeri içeren satırları seçmek için kullanılır:

KOD
123
SELECT * FROM çalışanlar
WHERE departman_id IN (SELECT id FROM departmanlar WHERE isim LIKE 'Mühendislik%');


Burada, iç sorgu 'Mühendislik' ile başlayan departman isimlerini getirir, dış sorgu ise bu departmanlara ait çalışanları listeler.

Korelasyonlu alt sorgular ise ana sorgunun her satırı için çalışır ve genellikle dış sorgudan alınan veriye göre iç sorgunun parametresini kullanır. Örneğin, her çalışan için o çalışanın maaş ortalamasını karşılaştırmak:

KOD
123
SELECT * FROM çalışanlar c1
WHERE maaş > (SELECT AVG(maaş) FROM çalışanlar c2 WHERE c1.departman_id = c2.departman_id);


Burada, her çalışan kendi departmanındaki maaş ortalamasıyla karşılaştırılır. Bu yapı, performans açısından dikkatli kullanılmalı çünkü her satır için alt sorgu çalıştırılır.

Alt sorgular, genellikle JOIN'lere alternatif oluşturmak veya karmaşık filtrelemeleri sağlamak için kullanılır. Ancak, sorgu performansı ve okunabilirlik açısından dikkatli olmak gerekir. Alternatif olarak, özellikle büyük veri setlerinde, JOIN veya CTE (Common Table Expression) kullanımı daha etkin olabilir.

Sonuç olarak, alt sorgular SQL'de güçlü ve esnek araçlardır, ancak doğru ve verimli kullanımı sorgu optimizasyonunu doğrudan etkiler. Bu yapıların kullanımı, özellikle karmaşık veri ilişkilerinde ve alt veri analizlerinde büyük avantaj sağlar.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi