Bir veritabanında yer alan tablolar ve bu tablolardaki alanların sorgulama yapılarak kullanılması ve çıkan sonuçların bir geçici dosyada (VIEW) tutulması işlemidir. Tablolar arasında bağlantılar kullanılarak sorgulamanın her seferinde yeniden yazılması yerine bir kez yazılarak sonuçların görüntü tablosunda tutulması ve bu tablo üzerinden de sorgulamaların yapılması hız, zaman ve performans kazandıracaktır.
Yaratılmış olan görüntü tablosu üzerinde INSERT, DELETE ve UPDATE işlemleri yapılamaz. Ancak görüntü tablosunu oluşturan tablolara yeni bir kayıt eklenmesi, değiştirilmesi ve silinmesi durumlarında görüntü tablosunda da güncelleştirmeler yapılacaktır.
Görüntü tabloların kullanılması, veritabanında ilgili tabloların üzerinde bağlantıların tekrar tekrar kurulması engellenmiş olacaktır. İş süreçlerine bağlı olarak özellikle ekran veya yazıcı raporların alınması, sorgulamaların gerçekleştirilmesi gibi amaçlarda kullanılır.
CREATE or REPLACE VIEW tablo_adi AS
SELECT .....;
Bu formata uygun bir şekilde ilk defa yaratılan (CREATE) veya yaratılmış bir görüntü tablosunda değişiklik (REPLACE) yapmak mümkündür. “tablo_adi” ile oluşturulacak olan görüntü tablosuna bir isim verilecektir. Bu isimin kolayca anlaşılmasına dikkat edilmelidir. Tabloyu oluşturacak sorgulama SELECT ifadesinin içeriğinde yer alacaktır.
Görüntü dosyasının oluşturulması sırasında yeni bir alan kullanılabilir bu takdirde bu alana bir isim verilmesi gereklidir.
Görüntü dosyasının yaratılması sırasında ORDER BY ile sıralama yapılması özelliği kullanılmaz. Buna karşılık GROUP BY özelliği kullanılabilir.
Örnek olarak aşağıdaki BOLUMLER ve OGRENCILER tablolarının “bolum_no” ile bağlanarak ogrenci nin adı ve soyadı ile bölüm adının listeleneceği bir görüntü dosyası oluşturalım.
CREATE TABLE bolumler (
bolum_no number(3),
adi varchar2(15),
CONSTRAINT pk_bolum PRIMARY KEY
);
CREATE TABLE ogrenci (
Ogrenci_no varchar2(10),
Adi varchar2(15),
Soyadi varchar2(15),
Ogr_bolum number(3),
CONSTRAINT fk_bolum FOREIGN KEY (ogr_bolum) REFERENCES bolumler (bolum_no)
);
CREATE or REPLACE view_ogr_bolum AS
SELECT a.adi||’ ‘||a.soyadi ISIM, b.adi BOLUM
FROM ogrenci a, bolumler b
WHERE a.ogr_bolum = b.bolum_no;
Bu örnekte OGRENCI tablosundaki “adi” ve “soyadi” alanları birleştirilerek “ISIM” alanı olarak, BOLUMLER tablosundaki bolum adi “adi” alanı ise “BOLUM” alanı olarak kullanılmıştır. Yaratılan view_ogr_bolum tablosunda sorgulama yapılmak istenirse,
SELECT *
FROM view_ogr_bolum
ORDER BY isim;