Provided by:
manpages-tr_1.0.5.1-2_all 
ISIM
CREATE TABLE AS - bir sorgunun sonuclarindan yeni bir tablo tanimlar
KULLANIM
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE tablo_ismi
[ (s"utun_ismi [, ...] ) ] [ [ WITH | WITHOUT ] OIDS ]
AS sorgu
A,CIKLAMA
CREATE TABLE AS bir tablo olusturur ve bir SELECT cumlesi ile ya da
hazirlanmis bir SELECT cumlesini calistiran bir EXECUTE komutu ile
hesaplanan veriyi kullanarak bu tabloyu doldurur. Tablonun sutunlari
icin SELECT ciktisindaki veri turleri ve sutun isimleri (sutun isimleri
listesi acikca belirtilmedikce) kullanilir.
CREATE TABLE AS tabloyu bir sanal tablo olusturur gibi olusturur, ama
bunu biraz farkli yapar: yeni bir tablo olusturduktan sonra tabloyu
doldurmak icin sorguyu bir defaligina isleme sokar. Yeni tablo,
sorgulanan kaynak tabloda sonradan yapilan degisiklikleri
izlemeyecektir. Bir sanal tabloda ise her sorgulanisinda kendini
olusturan SELECT cumlesi yeniden isleme sokulur.
PARAMETRELER
GLOBAL veya LOCAL
Uyumluluk icindirler ve yoksayilirlar. Ayintili bilgi icin
CREATE TABLE [create_table(7)] kilavuz sayfasina bakiniz.
TEMPORARY veya TEMP
Belirtilmisse, tablo bir gecici tablo olarak olusturulur.
Ayintili bilgi icin CREATE TABLE [create_table(7)] kilavuz
sayfasina bakiniz.
tablo_ismi
Olusturulacak tablonun ismi (sema nitelemeli olabilir).
s"utun_ismi
Yeni tablodaki bir sutunun ismi. Eger sutun isimleri verilmezse,
sorgunun ciktisindaki sutun isimleri kullanilir. Eger tablo bir
EXECUTE komutu ile olusturuluyorsa, bir sutun listesi
belirtilemez.
WITH OIDS, WITHOUT OIDS
Olusturulan tablonun nesne kimliklerini icerip icermeyecegini
belirtirler. Bunlarin hicbiri belirtilmezse, default_with_oids
yapilandirma degiskeninin degeri kullanilir.
sorgu Bir sorgu cumlesi (bir SELECT cumlesi ya da hazirlanmis bir
SELECT cumlesini calistiran bir EXECUTE komutu). Sorgu
cumlesinde kullanilabilecek sozdizimleri icin, SELECT
[select(7)] ve EXECUTE [execute(7)] kilavuz sayfalarina bakiniz.
EK BILGI
Bu komut, islevsellik bakimindan SELECT INTO [select_into(7)] cumlesine
benzer, fakat sozdizimi SELECT INTO sozdiziminden daha az karisik
oldugundan bu komut tercih edilir. Dahasi, CREATE TABLE AS, SELECT
INTO islevselligini daha ust seviyeden sunar.
PostgreSQL 8.0 oncesinde, CREATE TABLE AS'in olusturdugu tablo nesne
kimliklerini daima icerirdi. PostgreSQL 8.0 surumunden itibaren
kullanici olusturulan tablonun nesne kimliklerini icerip icermeyecegini
belirtebilmektedir. Eger kullanici secimini belirtmezse,
default_with_oids yapilandirma degiskeninin degeri kullanilir. Bu
degiskenin simdilik ontanimli degeri true olmasina ragmen ontanimli
deger ileride degistirilebilir. Bu bakimdan, uygulamalarinizda CREATE
TABLE AS ile tablo olusturuyorsaniz, PostgreSQL'in ileri surumlerindeki
olasi degisikliklerden etkilenmemek icin WITH OIDS secenegini acikca
belirtmelisiniz.
"ORNEKLER
filmler tablosundan sadece son girdileri alarak son_filmler tablosunu
olusturmak icin:
CREATE TABLE son_filmler AS
SELECT * FROM filmler WHERE tarih >= '2002-01-01';
UYUMLULUK
CREATE TABLE AS SQL:2003 standardinda belirtilmistir. Komutun
PostgreSQL gerceklemesi standarttan biraz farklidir:
. Standart altsorgunun parantez icine alinmasini gerektirir,
PostgreSQL'de ise parantezler istege baglidir.
. Standart bir ON COMMIT deyimi icerir; PostgreSQL'de bu henuz
gerceklenmemistir.
. Standart bir WITH DATA deyimi icerir; PostgreSQL'de bu henuz
gerceklenmemistir.
ILGILI BELGELER
CREATE TABLE [create_table(7)], EXECUTE [execute(7)], SELECT
[select(7)], SELECT INTO [select_into(7)].
,CEVIREN
Nilgun Belma Buguner <nilgun (at) belgeler.gen.tr>, Nisan 2005