İ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