İSİM¶
CREATE VIEW - yeni bir sanal tablo tanımlar
KULLANIM¶
CREATE [ OR REPLACE ] VIEW isim [ ( sütun_ismi [, ...] ) ] AS sorgu
AÇIKLAMA¶
CREATE VIEW bir sorgudan yeni bir sanal tablo tanımlar. Sanal
tablo fiziken mevcut değildir. Her seferinde sorgu yeniden
çalıştırılıp sanal tablo
oluşturulur.
CREATE OR REPLACE VIEW de hemen hemen aynıdır,
farklı olarak, aynı isimde bir sanal tablo zaten varsa, yeniden
oluşturulur. Böyle bir sanal tabloyu yeni bir sorgudan yeniden,
sadece aynı sütun isimleri ve veri türleriyle
oluşturabilirsiniz.
CREATE VIEW myschema.myview ... gibi bir şema nitelemeli isim
kullanırsanız, sanal tablo belirtilen şemada
oluşturulur. Aksi takdirde, o anki şemada oluşturulur.
Sanal tablonun ismi aynı şemada bulunan tablo, kayıt
listesi, indeks ve sanal tablo isimlerinden farklı
olmalıdır.
PARAMETRELER¶
- isim
- Oluşturulacak sanal tablonun ismi (şema nitelemeli
olabilir).
- sütun_ismi
- Sanal tablonun isteğe bağlı sütun isimleri.
Belirtilmezse, sütun isimleri sorgudan saptanır.
- sorgu
- Sanal tablonun satır ve sütunlarının elde
edileceği sorgu (bu bir SELECT cümlesidir).
Sorgular hakkında bilgi edinmek için SELECT [select(7)]
kılavuz sayfasına bakınız.
EK BİLGݶ
Şimdilik, sanal tablolar salt okunurdur: sistem, veri girme, veri silme
ve güncelleme işlemlerine izin vermez. Güncellenebilir
bir sanal tabloyu, diğer tablolardaki veri girme, veri silme veya
güncelleme işlemlerini yeniden yazan kurallar oluşturarak
elde edebilirsiniz. Daha fazla bilgi için
CREATE RULE
[
create_rule(7)] kılavuz sayfasına bakınız.
Sanal tabloyu kaldırmak için
DROP VIEW kullanın.
Sanal tablonun sütunlarının isim ve veri türlerinin
sizin istediğiniz şekilde atanmasını
sağlamalısınız. Örneğin,
CREATE VIEW vista AS SELECT 'Hello World';
şeklinde bir cümle iki bakımdan
kötüdür: sütun isimleri için ?column?,
sütun veri türleri için ise unknown
öntanımlıdır. Bu cümleyi
şöyle yazarsanız, sanal tablodan ne isteyeceğinizi
de bilirsiniz:
CREATE VIEW vista AS SELECT text 'Hello World' AS hello;
Sanal tablonun oluşturulduğu tablolara erişim, sanal
tablonun sahibine göre belirlenir. Ancak, sanal tabloda
çağrılan işlevler, doğrudan sorgudan
çağılmış gibi ele alınır. Bu
yüzden, sanal tablo kullanıcısının sanal
tablo tarafından çağrılan tüm
işlevleri çağıracak izinlerinin olması
gerekir.
ÖRNEKLER¶
Tamamı komedi filmlerinden oluşan bir sanal tablonun
oluşturulması:
CREATE VIEW komediler AS
SELECT *
FROM filmler
WHERE cinsi = 'Komedi';
UYUMLULUK¶
SQL standardı
CREATE VIEW deyimi için bazı ek
yetenekler belirtir:
CREATE VIEW isim [ ( sütun [, ...] ) ]
AS sorgu
[ WITH [ CASCADE | LOCAL ] CHECK OPTION ]
Burada isteğe bağlı deyimler şunlardır:
- CHECK OPTION
- Güncellenebilir sanal tablolar yapar. Sanal tablo üzerindeki
tüm INSERT ve UPDATE komutlarının sanal
tablo tanımlama koşullarına uygunluğu
sınanacaktır (yani, yeni verinin sanal tablo
üzerinden görünür olması gerekir).
Sınama başarısız olursa, güncelleme
reddedilecektir.
- LOCAL
- Sanal tablonun kendi bütünlüğü
sınanır.
- CASCADE
- Sanal tablonun diğer sanal tablolarla bütünlük
içinde olup olmadığı sınanır. Ne
CASCADE ne de LOCAL belirtilmişse, CASCADE
öntanımlıdır.
CREATE OR REPLACE VIEW ise bir PostgreSQL oluşumudur.
İLGİLİ BELGELER¶
DROP VIEW [
drop_view(7)].
ÇEVİREN¶
Nilgün Belma Bugüner <nilgun (at)
belgeler·gen·tr>, Nisan 2005