CodeBlanks Logo Icon CodeBlanks

CTE ve alt sorgu

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

query.sql
-- CTE'ye çevir
WITH

Örnek çözüm

query.sql
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

Soru
____ active AS (SELECT * FROM customers WHERE status = 'active')
SELECT * FROM active;
Cevap
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

İleri seviye bölümündeki tüm dersler