PostgreSQL Geçici Tablolar

Merve KÜÇÜKDOĞRU
Machine Learning Turkiye
3 min readJun 2, 2022

Herkese merhaba,

Bugünkü yazımda sizlere PostgreSQL’ de Geçici Tabloları anlatmaya çalışacağım.

Hazırsanız başlayalım.

Geçici Tablolar Nedir, Niçin Kullanılır?

✔ Geçici tablalar veri tabanında kalıcı olarak saklanmaz. Yani veri tabanını kapatıp açtığımızda tekrar göremeyiz.

✔ Disk üzerinde saklanmadığı için daha sonra ulaşamayız.

✔ Tablolarda bulunan verileri bozmak istemediğimizde ya da birkaç kolonla işlem yapmak istediğimizde geçici tabloları kullanabiliriz.

✔ Rapor oluşturmak istediğimizde, veriler ile herhangi bir test yapmak istediğimizde geçici tablolardan yararlanabiliriz.

İki şekilde geçici tablo oluşturabiliriz.

  1. CREATE TEMP TABLE
  2. SELECT INTO TEMP

Şimdi sırasıyla inceleyelim.

1. CREATE TEMP TABLE

Temel kullanımı aşağıdaki gibidir:

CREATE TEMPORARY|TEMP TABLE temp_table_name(

column_name data_type,

column_name data_type,

….

);

Eğer oluşturduğumuz tablo ile aynı isimde daha önceden tablo oluşturup oluşturmadığımızı bilmiyorsak kodumuzu aşağıdaki şekilde düzenleyebiliriz.

Yukarıdaki kodda daha önce oluşturulmamış ise oluştur ama oluşturulmuş ise oluşturma demek istiyoruz.

Oluşturduğumuz tabloyu görüntülemek istersek;

Oluşturduğumuz geçici tabloya kayıt eklemek istersek;

Mevcut bir tablonun geçici tablosunu oluşturmak istersek kodumuzu aşağıdaki şekilde düzenleyebiliriz.

Yukarıda ki SELECT 2 ifadesi ile tablonun oluşturulduğunu ve tabloya iki kayıt eklendiğini anlayabiliriz. Oluşturduğumuz geçici tablomuzu görüntülemek istersek;

Geçici tabloları oluştururken normal sorgulama yaparken kullandığımız bütün ifadeleri kullanabiliriz.

Oluşturulan bu geçici tabloda mevcut tabloda yapamadığımız işlemleri yapabiliriz. Bu tabloda yaptığımız işlemler sadece bu tabloyu etkiler mevcut tabloyu etkilemez.

2. SELECT INTO TEMP

Temel kullanımı aşağıdaki gibidir:

SELECT column_name, column_name, …

INTO TEMP TABLE new_temp_table_name

FROM current_table_name

WHERE conditions…

ORDER BY column_name ASC|DESC;

Geçici tablolar veri tabanı kapatılıp açıldığında silinir.

SELECT INTO TEMP ile oluşturduğumuz tablolar disk üzerinde tutulmaz. Kalıcı değildir ve kapatıp açtığımızda görünmez.

Burada küçük bir detay

📌 SELECT INTO ile SELECT INTO TEMP Arasındaki Fark

SELECT INTO ile oluşturulan tablolar veri tabanı kapatılıp açıldığında silinmez. Ancak SELECT INTO TEMP ile oluşturulan tablolar veri tabanı kapatılıp açıldığında silinir.

📌 Geçici tablolarda DDL Komutları’ nın(Create, Drop, Alter) hepsini kullanabiliriz. Kalıcı tablolarda yaptığımız bütün işlemleri yapabiliriz.

Oluşturduğumuz geçici tablonun adını değiştirmek isterse;

Kodumuzun çalışıp çalışmadığını kontrol etmek istersek;

Örnek olarak oluşturduğumuz tabloyu veri tabanından kalıcı olarak silmek istersek;

Zaman ayırıp okuduğunuz için teşekkür ederim. Umarım faydalı olmuştur. Bir sonraki yazıda görüşmek üzere…

Sağlıcakla kalın.😊

--

--