- İSİM
- CREATE TABLE AS — bir sorgunun sonuçlarından yeni bir tablo tanımlar
 
- KULLANIM
- CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE tablo_ismi
    [ (sütun_ismi [, ...] ) ] [ [ WITH | WITHOUT ] OIDS ]
    AS sorgu
- Açıklama
- 
CREATE TABLE AS bir tablo oluşturur ve bir SELECT cümlesi ile ya da hazırlanmış bir SELECT cümlesini çalıştıran bir EXECUTE komutu ile hesaplanan veriyi kullanarak bu tabloyu doldurur. Tablonun sütunları için SELECT çıktısındaki veri türleri ve sütun isimleri (sütun isimleri listesi açıkça belirtilmedikçe) kullanılır.
   - 
CREATE TABLE AS tabloyu bir sanal tablo oluşturur gibi oluşturur, ama bunu biraz farklı yapar: yeni bir tablo oluşturduktan sonra tabloyu doldurmak için sorguyu bir defalığına işleme sokar. Yeni tablo, sorgulanan kaynak tabloda sonradan yapılan değişiklikleri izlemeyecektir. Bir sanal tabloda ise her sorgulanışında kendini oluşturan SELECT cümlesi yeniden işleme sokulur.
   
- Parametreler
- GLOBAL veya LOCAL
- Uyumluluk içindirler ve yoksayılırlar. Ayıntılı bilgi için  CREATE TABLE[create_table(7)]-  kılavuz sayfasına bakınız.
     
- TEMPORARY veya TEMP
- Belirtilmişse, tablo bir geçici tablo olarak oluşturulur. Ayıntılı bilgi için  CREATE TABLE[create_table(7)]-  kılavuz sayfasına bakınız.
     
- tablo_ismi
- Oluşturulacak tablonun ismi (şema nitelemeli olabilir).
     
- sütun_ismi
- Yeni tablodaki bir sütunun ismi. Eğer sütun isimleri verilmezse, sorgunun çıktısındaki sütun isimleri kullanılır. Eğer tablo bir EXECUTE komutu ile oluşturuluyorsa, bir sütun listesi belirtilemez.
     
- WITH OIDS
- WITHOUT OIDS
- Oluşturulan tablonun nesne kimliklerini içerip içermeyeceğini belirtirler. Bunların hiçbiri belirtilmezse, default_with_oids  yapılandırma değişkeninin değeri kullanılır.
     
- sorgu
- Bir sorgu cümlesi (bir  SELECT-  cümlesi ya da hazırlanmış bir  SELECT-  cümlesini çalıştıran bir  EXECUTE-  komutu). Sorgu cümlesinde kullanılabilecek sözdizimleri için,  SELECT[select(7)]-  ve  EXECUTE[execute(7)]-  kılavuz sayfalarına bakınız.
     
 
- Ek Bilgi
- 
Bu komut, işlevsellik bakımından SELECT INTO[select_into(7)] cümlesine benzer, fakat sözdizimi SELECT INTO sözdiziminden daha az karışık olduğundan bu komut tercih edilir.  Dahası, CREATE TABLE AS,  SELECT INTO işlevselliğini daha üst seviyeden sunar.
   - 
PostgreSQLTM 8.0 öncesinde, CREATE TABLE AS'in oluşturduğu tablo nesne kimliklerini daima içerirdi. PostgreSQLTM 8.0 sürümünden itibaren kullanıcı oluşturulan tablonun nesne kimliklerini içerip içermeyeceğini belirtebilmektedir. Eğer kullanıcı seçimini belirtmezse, default_with_oids  yapılandırma değişkeninin değeri kullanılır. Bu değişkenin şimdilik öntanımlı değeri true olmasına rağmen öntanımlı değer ileride değiştirilebilir. Bu bakımdan, uygulamalarınızda CREATE TABLE AS ile tablo oluşturuyorsanız, PostgreSQL'in ileri sürümlerindeki olası değişikliklerden etkilenmemek için WITH OIDS seçeneğini açıkça belirtmelisiniz.
   
- Örnekler
- 
filmler tablosundan sadece son girdileri alarak son_filmler tablosunu oluşturmak için:
   - CREATE TABLE son_filmler AS
  SELECT * FROM filmler WHERE tarih >= '2002-01-01';
 
- Uyumluluk
- 
CREATE TABLE AS SQL:2003 standardında belirtilmiştir. Komutun PostgreSQL gerçeklemesi standarttan biraz farklıdır:
   - 
Standart altsorgunun parantez içine alınmasını gerektirir, PostgreSQL'de ise parantezler isteğe bağlıdır.
    
- 
Standart bir ON COMMIT deyimi içerir; PostgreSQL'de bu henüz gerçeklenmemiştir.
    
- 
Standart bir WITH DATA  deyimi içerir; PostgreSQL'de bu henüz gerçeklenmemiştir.
    
 
- İlgili Belgeler
- Çeviren
- 
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Nisan 2005