SQL Alt Sorgular (Subqueries) – Detaylı Kurs Rehberi

 


SQL Alt Sorgular (Subqueries) – Detaylı Kurs Rehberi

📚 SQL Alt Sorgular (Subqueries)

Detaylı Kurs Rehberi – Sıfırdan İleri Seviyeye

⏱️ Süre: 45 dk
📊 Seviye: Orta-İleri
🎯 12 Bölüm
💻 15+ Örnek
SQL subquery SQL alt sorgu SQL correlated subquery SQL IN subquery SQL EXISTS SQL scalar subquery SQL nested query SQL alt sorgu örnekleri

1 SQL Alt Sorgu Nedir?

1.1 Tanım

Alt sorgu (subquery), bir SQL sorgusu içinde çalışan başka bir SQL sorgusudur. Parantez () içinde yazılır ve ana sorgunun bir parçası olarak çalışır.

-- Temel Yapı SELECT kolon1, kolon2 FROM tablo WHERE kolon = (SELECT kolon FROM tablo2 WHERE kosul);

1.2 Neden Kullanılır?

Amaç Açıklama
Dinamik filtreleme Değişken koşullara göre veri çekme
Karşılaştırma Bir tablodaki değeri başka tabloyla karşılaştırma
Hesaplama Ortalama, maksimum gibi değerleri dinamik hesaplama
Veri doğrulama Varlık kontrolü (EXISTS)

2 Alt Sorgu Türleri

2.1 Sonuç Türüne Göre Sınıflandırma

┌─────────────────────────────────────────────────────────┐ │ ALT SORGU TÜRLERİ │ ├─────────────────────────────────────────────────────────┤ │ 1. Scalar Subquery → Tek satır, tek kolon (1 değer) │ │ 2. Single-Row Subquery→ Tek satır, birden fazla kolon │ │ 3. Multi-Row Subquery → Birden fazla satır, tek kolon │ │ 4. Multi-Column Subquery→ Birden fazla satır ve kolon │ │ 5. Correlated Subquery→ Ana sorguyla bağlantılı çalışan│ │ 6. Nested Subquery → İç içe geçmiş alt sorgular │ └─────────────────────────────────────────────────────────┘

2.2 Yerleşimine Göre Sınıflandırma

Konum Kullanım Alanı Örnek Operatörler
WHERE Filtreleme =, >, <, IN, EXISTS, ANY, ALL
FROM Sanal tablo oluşturma Tablo alias ile
SELECT Kolon değeri olarak Scalar subquery
HAVING Grup filtresi Agregat karşılaştırması

3 Scalar Subquery (Tek Değerli Alt Sorgu)

ℹ️
Tanım: Yalnızca tek bir satır ve tek bir kolon döndüren alt sorgudur.

3.1 Örnek: Ortalama Maaştan Yüksek Çalışanlar

-- Çalışanlar tablosu oluştur CREATE TABLE calisanlar ( id INT PRIMARY KEY, ad VARCHAR(50), departman VARCHAR(50), maas DECIMAL(10,2) ); -- Ortalama maaştan yüksek kazananları bul SELECT ad, departman, maas FROM calisanlar WHERE maas > (SELECT AVG(maas) FROM calisanlar);
💡
Çalışma Mantığı:
1. İç sorgu çalışır → AVG(maas) hesaplanır (örn: 5000)
2. Dış sorgu çalışır → WHERE maas > 5000 filtresi uygulanır

3.2 Örnek: SELECT İçinde Kullanım

SELECT ad, maas, (SELECT AVG(maas) FROM calisanlar) AS ortalama_maas, maas - (SELECT AVG(maas) FROM calisanlar) AS fark FROM calisanlar;
⚠️
Önemli: Scalar subquery mutlaka tek değer döndürmelidir. Aksi halde "Subquery returns more than 1 row" hatası alınır.

4 Multi-Row Subquery (Çok Satırlı Alt Sorgu)

4.1 IN Operatörü ile Kullanım

-- "Satış" departmanındaki çalışanların proje ID'lerini bul SELECT proje_adi, calisan_id FROM projeler WHERE calisan_id IN ( SELECT id FROM calisanlar WHERE departman = 'Satış' );

4.2 NOT IN ile Kullanım

-- Hiç proje olmayan çalışanları bul SELECT ad, departman FROM calisanlar WHERE id NOT IN ( SELECT calisan_id FROM projeler WHERE calisan_id IS NOT NULL );
🚨
Dikkat: NOT IN içinde NULL değer varsa sonuç boş dönebilir. Mutlaka IS NOT NULL kontrolü ekleyin veya NOT EXISTS kullanın.

5 Correlated Subquery (Bağımlı Alt Sorgu)

ℹ️
Tanım: Ana sorgunun her satırı için ayrı ayrı çalışan alt sorgudur. Ana sorgudaki değere bağlıdır.

5.1 Örnek: Departman Ortalamasından Yüksek Maaş

SELECT c1.ad, c1.departman, c1.maas FROM calisanlar c1 WHERE c1.maas > ( SELECT AVG(c2.maas) FROM calisanlar c2 WHERE c2.departman = c1.departman -- ← Ana sorguyla bağlantı! );

5.2 Çalışma Mantığı

Adım İşlem
1 Ana sorgu ilk satırı alır (Ahmet, Satış, 6000)
2 Alt sorgu çalışır: Satış departmanı ortalaması = 5500

Yorumlar

Tarih Bilgini Test Etmeye Hazır mısın?

Avrupa'dan Afrika'ya, Asya'dan Amerika ve İslam tarihine uzanan 40 soruluk dev genel kültür testimiz yayında!

🏆 Yarışmayı Tam Sayfa Aç
PDF Okuyucu İkonu

Hızlı PDF Okuyucu

Hızlı, hafif ve kullanıcı dostu PDF görüntüleme deneyimi.

Google Play'den İndir
Dersimiz Tarih

Dersimiz Tarih Uygulaması

Tarih Derslerinden Tarih Alanında Hemen Herşeye Kadar Dijital Tarih Bilgi Merkezi.

Google Play'den İndir

Bu blogdaki popüler yayınlar

YouTube ile Web Sitesi SEO'su: Kapsamlı Strateji Rehberi

Uygulama Reklam Butonu