Sobes.tech
Junior — Middle

SQL'de Ortak Tablo İfadesi (CTE) içinde özyinelemeli ve özyinelemsiz ifadeler nasıl farklılık gösterir?

sobes.tech yapay zeka

AI'dan gelen yanıt

SQL'de Ortak Tablo İfadesi (CTE), ana sorguda kullanılabilen geçici bir sonuçtur. İki tür CTE vardır: rekürsif ve rekürsif olmayan.

  • Rekürsif olmayan CTE: sadece bir sorgu ile tanımlanan isimlendirilmiş geçici veri kümesidir. Karmaşık sorguları basitleştirmek veya alt sorguları yeniden kullanmak için kullanılabilir.

  • Rekürsif CTE: kendisine referans veren ve örneğin hiyerarşileri veya grafikleri dolaşmak gibi rekürsif işlemler yapmaya izin veren CTE'dir.

Rekürsif olmayan CTE örneği:

WITH RecentOrders AS (
    SELECT * FROM Orders WHERE OrderDate > '2024-01-01'
)
SELECT * FROM RecentOrders WHERE CustomerID = 123;

Rekürsif CTE örneği (tüm bağlı çalışanları bulma):

WITH RECURSIVE Subordinates AS (
    SELECT EmployeeID, ManagerID, Name FROM Employees WHERE EmployeeID = 1 -- müdür
    UNION ALL
    SELECT e.EmployeeID, e.ManagerID, e.Name
    FROM Employees e
    INNER JOIN Subordinates s ON e.ManagerID = s.EmployeeID
)
SELECT * FROM Subordinates;

Bu şekilde, rekürsif CTE'ler zincirler ve hiyerarşiler oluşturabilirken, rekürsif olmayanlar sorgu yapısını basitleştirir.