Güncellenebilir görünüm
Tek tabloya dayanan, GROUP BY / DISTINCT / toplama / pencere fonksiyonu içermeyen basit görünümler üzerinden INSERT, UPDATE ve DELETE yapılabilir; değişiklik alttaki tabloya yansır.
CREATE VIEW v_kitap AS SELECT product_id, name, price, category FROM products WHERE category = 'Kitap'; UPDATE v_kitap SET price = price * 1.05; -- products tablosundaki kitaplar güncellenir
WITH CHECK OPTION
Görünümün filtresine uymayan satırların görünüm üzerinden eklenmesini veya değiştirilmesini engeller:
CREATE VIEW v_kitap AS SELECT product_id, name, price, category FROM products WHERE category = 'Kitap' WITH CHECK OPTION; -- Hata: satır görünümün dışına çıkardı UPDATE v_kitap SET category = 'Elektronik' WHERE product_id = 9;
Oracle'da ayrıca WITH READ ONLY görünümü salt okunur yapar, CREATE FORCE VIEW tablo henüz yokken görünüm oluşturur.
Materialized view (somut görünüm)
Normal görünüm her sorguda yeniden hesaplanır. Materialized view sonucu diskte saklar; okunması hızlıdır ama veriler değiştikçe yenilenmesi gerekir.
| SQL türü | Nasıl? |
|---|---|
| PostgreSQL | CREATE MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW [CONCURRENTLY] |
| Oracle | CREATE MATERIALIZED VIEW ... REFRESH FAST|COMPLETE ON COMMIT|DEMAND, sorgu yeniden yazma (query rewrite) |
| SQL Server | Indexed view: WITH SCHEMABINDING ile görünüm + benzersiz kümelenmiş indeks; otomatik güncel tutulur |
| BigQuery, Snowflake | CREATE MATERIALIZED VIEW; artımlı ve otomatik yenileme |
| MySQL | Yok; özet tablo + zamanlanmış olay (EVENT) ile taklit edilir |
-- PostgreSQL
CREATE MATERIALIZED VIEW mv_aylik_ciro AS
SELECT date_trunc('month', o.order_date) AS ay,
SUM(oi.quantity * oi.unit_price * (1 - oi.discount)) AS ciro
FROM orders o JOIN order_items oi ON oi.order_id = o.order_id
WHERE o.status = 'delivered'
GROUP BY 1;
CREATE UNIQUE INDEX ON mv_aylik_ciro (ay);
REFRESH MATERIALIZED VIEW CONCURRENTLY mv_aylik_ciro; -- okuyanları kilitlemeden yenile
Ne zaman?Pahalı ve sık okunan, ama birkaç dakika/saat eski olmasında sakınca olmayan raporlar için. Gerçek zamanlı doğruluk gereken yerde normal görünüm veya indeks tercih edilir.