Provided by:
manpages-tr_1.0.5.1-1.1_all 
İ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ÇIKLAMA
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 BİLGİ
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.
PostgreSQL 8.0 öncesinde, CREATE TABLE AS'in oluşturduğu tablo nesne
kimliklerini daima içerirdi. PostgreSQL 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.
İLGİLİ BELGELER
CREATE TABLE [create_table(7)], EXECUTE [execute(7)], SELECT
[select(7)], SELECT INTO [select_into(7)].
ÇEVİREN
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Nisan 2005