CTE ve alt sorgu
- SQL kursu
- İleri seviye
- Ders 4/81
- 4 dk
CTE ile alt sorgu farkını öğrenirsin.
CTE ve alt sorgu
CTE alt sorgunun okunabilir halidir. Karmaşık alt sorguları parçalara böler.
-- Alt sorgu
SELECT * FROM (SELECT * FROM customers WHERE status = 'active') sub;
-- CTE
WITH active AS (SELECT * FROM customers WHERE status = 'active')
SELECT * FROM active;Bu sorgu iki yazım aynı sonucu verir.
(SELECT * FROM customers WHERE status … kaynağından tüm sütunlar seçilir.
CTE ve alt sorgu — ayrıntı
CTE daha okunabilirdir. Aynı CTE'yi birden çok kez kullanabilirsin; alt sorguda bu zordur.
Performans çoğu veritabanında aynıdır; fark, sorguyu okuyan ve bakımını yapan kişi içindir. Uzun iç içe alt sorgular yerine adlandırılmış adımlar hatayı bulmayı kolaylaştırır.
Uygulama CTE ve alt sorgu
Bir alt sorguyu CTE'ye çevir: WITH active AS (SELECT ...).
Başlangıç kodu
-- CTE'ye çevir
WITHÖrnek çözüm
WITH active AS (SELECT * FROM customers WHERE status = 'active')
SELECT * FROM active;Beklenen çıktı
id name status 1 Ayşe active
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 CTE alt sorguya göre ne üstün?
- Hız
- Bellek
- Güvenlik
- Okunabilirlik Doğru cevap
Açıklama: CTE daha okunabilirdir.
2 CTE yaz
____ active AS (SELECT * FROM customers WHERE status = 'active')
SELECT * FROM active;
WITH active AS (SELECT * FROM customers WHERE status = 'active')
SELECT * FROM active;
Açıklama: Her CTE WITH ile tanımlanır; sonraki SELECT bu adı bir tablo gibi kullanır.
3 CTE ve alt sorgu: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
CTE |
okunabilir |
alt sorgu |
iç içe |
tekrar |
çok kez |
temiz |
düzenli |