Orta Seviye SQL Server Sql Server

SQL Server’da Common Table Expression Kullanımı

SQL Server Eğitimleri Kanalına Abone Olun

Herkese merhaba,

Bu yazıda SQL Server’da Common Table Expression kullanımından bahsedeceğim. Common Table Expression’a ortak tablo ifadeleri de denir. Sorguların yürütülmesi anında elde edilmiş olan geçici sonuçlardır. Bir veya daha fazla sefer kullanılabilirler.

CTE’nin özelliklerine değinirsek;

  • Bir tablo ya da view değildir herhangi bir veri içermezler.
  • Kendi kendini çağırabilir ve aynı sorgu içerisinde birden fazla çalıştırılabilirler.
  • Daha çok recursive işlemlerde kullanılırlar.
  • Common Table Expression’larda table ve view yapılarından farklı olarak primary key, unique, not null, default. gibi constraint ifadeleri desteklenmez.
  • Common Table Expression’lar yalnızca SELECT işlemlerinde değil INSERT, UPDATE ve DELETE işlemlerinde de kullanılabilir.
  • Kendi indexleri yoktur. İçeriğindeki tabloların indexlerini kullanırlar.
  • Sadece çalıştığı sorgu bloğunda geçerlidir.
  • Farklı tablolarda bulunan bilgi içeriklerinin birbiriyle karşılaştırılması gibi karmaşık işlerde kullanılabilir.
  • Common Table Expression’ların okunurluğu yüksektir.

Konu ile ilgili örneği Northwind veritabanını kullanarak yaptık. Örneği inceleyelim.

WITH OnDolarUzerindekiUrunlerveKategorileri (ÜrünAd, KategoriAd, BirimFiyat) AS
(
   SELECT
      p.ProductName AS ÜrünAd,
      c.CategoryName AS KategoriAd,
      p.UnitPrice AS BirimFiyat
   FROM Products p
      INNER JOIN Categories c ON
         c.CategoryID = p.CategoryID
   WHERE p.UnitPrice > 10.0
)

SELECT *
FROM OnDolarUzerindekiUrunlerveKategorileri
ORDER BY KategoriAd ASC, BirimFiyat ASC, ÜrünAd ASC

Burada With ile CTE yapımızı oluşturuyoruz. Sonrasında CTE’ye isim veriyoruz ve içteki sorguda çekmek istediğimiz alanları parantez içinde belirtiyoruz. Ben alias değerlerini yazdım. En altta ise verdiğimiz CTE ismini from ifadesinden sonra çağırıyoruz. CTE oluştururken kaç adet alanı parantez içinde belirttiyseniz o kadar alanı select ifadesinde çekebilirsiniz. Son olarak sorgu bütün halde çalışır. Sadece select sorgusunu çağırırsanız hata alacaksınız.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

282 Kez Okundu
SQL Server Eğitimleri Kanalına Abone Olun

Yazar hakkında

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli birisiyim.

Kopyalamak Yasaktır!
Ads Blocker Image Powered by Code Help Pro
Reklam Eklentisi Kullanıyorsunuz

Lütfen bizlere destek için reklam eklentisi olmadan sitemizi ziyaret edin.

Şimdiden teşekkür ederiz.

Powered By
CHP Adblock Detector Plugin | Codehelppro