Sorgu işleme sırası

Oracle SQL'ye Giriş

Hadrien Lacroix

Content Developer

İşleme sırası neden önemlidir?

  • Sorgularınızı optimize edin
    • İstenmeyen sonuç yok
    • Daha hızlı çalıştırma
Oracle SQL'ye Giriş

Örnek

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Oracle SQL'ye Giriş

Örnek

    SELECT BillingCountry, AVG(Total) > 100) AS Average
->  FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Oracle SQL'ye Giriş

Örnek

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
->  WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Oracle SQL'ye Giriş

Örnek

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
->  GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Oracle SQL'ye Giriş

Örnek

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
->  HAVING AVG(Total) > 100
    ORDER BY Average DESC
Oracle SQL'ye Giriş

Örnek

->  SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Oracle SQL'ye Giriş

Örnek

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
->  ORDER BY Average DESC
Oracle SQL'ye Giriş

Ne ters gidebilir?

SELECT BillingCountry, 
       AVG(Total) > 100) AS Average
FROM Invoice
WHERE BillingCity <> 'Paris' 
GROUP BY BillingCountry
HAVING AVG(Total) > 100
ORDER BY Average DESC
  • WHERE, GROUP BY ve HAVING içinde takma adlar kullanılamaz
  • ORDER BY içinde takma adlar kullanılabilir
Oracle SQL'ye Giriş

Ne ters gidebilir?

SELECT BillingCountry, 
       AVG(Total) > 100) AS Average
FROM Invoice
WHERE BillingCity <> 'Paris' 
GROUP BY BillingCountry
HAVING AVG(Total) > 100
ORDER BY Average DESC
  • Toplam değerler WHERE koşulunda filtrelenemez
  • Toplam değerler HAVING koşulunda filtrelenebilir
Oracle SQL'ye Giriş

Ne ters gidebilir?

SELECT BillingCountry, 
       AVG(Total) > 100) AS Average
FROM Invoice
WHERE BillingCity <> 'Paris' 
GROUP BY BillingCountry
HAVING AVG(Total) > 100)
ORDER BY Average DESC
  • Tekil satırlar HAVING koşulunda filtrelenemez
  • Tekil satırlar WHERE koşulunda filtrelenebilir
Oracle SQL'ye Giriş

Sorgu yürütme sırası

  1. FROM ve JOINler: hangi verinin sorgulanacağını belirler

  2. WHERE: tekil satırları filtreler

  3. GROUP BY: satırları grupla

  4. HAVING: grupları filtrele

  5. SELECT: sütunları seç ve sütun işlevleri uygula

  6. DISTINCT: yinelenenleri kaldır

  7. UNION, UNION ALL, INTERSECT, MINUS: küme işleçleri uygula

  8. ORDER BY: satırları sırala

Oracle SQL'ye Giriş

Hadi pratik yapalım!

Oracle SQL'ye Giriş

Preparing Video For Download...