10-SQL DERSLERİ – TEMP TABLE, VİEW

578
görünümler

Temp Table Ne Demek?

Temp Table geçici tablo demektir. Herhangi bir yerde diyelim belli bir kayıt bloğunu belli bir yere çekmek istiyorsunuz sorgunun içine dinamik olarak burada Temp Table (Temporary Tables) kullanırsınız. Sorguladığınız o Temp kayıt içinde işlem yapacaksanız, dataları eğer şekillendirirseniz Temp Table burada çok işe yarar.

Önemli tablolar üzerinde kritik sorgular çalıştırmak zorunda kalındığında ve sonuçlar tahmin edilemeyecek gibiyse, geçici bir tablo oluşturulur ve kodlar bu geçici tablo üzerinde test edilir; daha sonra istenilen kodlar gerçek tabloya uygulanır. Aynı zamanda geçici tablolar, karmaşık ve çok fazla bilgi olan tablolardan sadece belirli bir kısmı alarak üzerinde çalışmak için de kullanılabilir.

Aşağıdaki örneği inceleyelim.

temptableHer zaman olduğu gibi yeni bir şey yaratcağımız zaman CREATE yazıyorduk. CREATETABLE yazdıktan sonra ‘ # ‘ işaretini koyup ardından vereceğimiz ismi yazıyoruz. Parantez açıp kapadıktan sonra içine olmasını istediğimiz kolonları ve türleri yazdıktan sonra çalıştırıyoruz. Daha sonra SELECT ile sorgulayıp kolonlarımızı yukardaki gibi görüyoruz.

Şimdi bu TEMP TABLO muza kayıt ekleyelim.

temptable2Tabloya kayıt eklerken INSERT INTO ile yapıyorduk. Kayıtlarımızı ekledikten sonra tekrardan SELECT ile sorgulayıp kayıtlarımızı yukardaki gibi görüyoruz.

Peki biz bu TEMP TABLE i yok etmek istersek ne yapmamız gerek?

İlk yolu SQL SERVER ı restart ettiğiniz takdirde TEMP TABLE yok olur. Çünkü bu yaptığımız tablo sadece o  session lık açıktır. Service in açık olduğu sürece TEMP TABLE yaşar. Yada “DROP TABLE #TempTable” sorgusu ilede TEMP TABLE ı yok edebiliriz.

Şimdi bir başka örnek yapalım.

temptable3Bu örneğimizde önce DimEmployee tablosunu çağırdık. Ve bu tablomuzda ki EmployeeKey kolonu ile FirstName kolonunu TEMP TABLE içine koyalım.

temptable4EmployeeKey kolonu ve FirstName kolonunu TEMP TABLE içine koyduk. Ve SELECTile #TempTable ımızı çağırdığımızda veriler geldi. TEMP TABLE lar çok kullanışlıdır. Özellikle STORE PROCEDURE leri yazarken bazı kayıtları almanız gerekir belli bir tablodan. O kayıtlar üzerinde sadece işlem yapmanız gerekir. Bunu düz SELECT ile de yapabilirsiniz ama bazen yorucu olur bu. Veya şöyle düşünün belli bir kayıtları alıp onları bir yere INSERT edip üzerinde işlem yapmanız gerekebilir. İşte bu tip durumlarda TEMP TABLE lar birebirdir.

VIEW NEDİR?

View lar çok önemli bir konudur. VIEW lar özel tablolar demektir. Bir SELECT yazdınız JOIN li ve bunu bir sürü yerde kullanmak istiyorsunuz. Örneğin İki tane veya daha fazla tabloyu birbirine bağladınız içinden 5 tane kolon aldınız. Ve bunu her yerde kullanacaksınız. Yeni bir tablo yapmakta işinize gelmiyor çünkü tabloların dolma maliyetleri var. Koda girmesi gerekir yeni tablo yaptığınızda , öylede yapma imkanınız yok o zaman işte burada VIEW lar devreye girer.

Şimdi bir örnekle bunu inceleyelim.

viewsqlDiyelim ki yukarıdaki kod size 50 tane yerde lazım. Her seferinde tek tek yazmak yerine bunu VIEW in içine yazarız ve artık yazacağımız yerlerde bu VIEW i kullanırız.

Şimdi VIEW i oluşturalım.

viewsql2VIEW leride oluştururken her zaman ki gibi CREATE ile oluşturuyoruz. Ardından VIEW diyip VIEW ımızın adınız yazıp AS diyoruz. Ondan sonrada yukarda kullandığımız kodu gelip içine yapıştırıyoruz. View i çağırmak içinde SELECTsorgusuyla çağırıp sonucu görüyoruz.

VIEW lerin üzerinde değişiklik yapmak istediğimizde ise yine ALTER komutunu kullanıyoruz.

Aşağıdaki örneği inceleyelim.

viewsql4ProductKey imizi 344 yapıp VIEW ımızı değiştirdik. Tekrardan SELECT ile çağırdık ve yukardaki sonucu gördük.

Bir sonraki derse geçmek için tıklayınız.

1 Yorum

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz