Veritabanı programlama
VIEW: sorguya isim vermek
Tutarlı bir okuma sözleşmesi oluştur.
Kavramı anlayalım
View, saklanan bir SELECT tanımıdır; normal view sonuçları kendiliğinden fiziksel olarak saklamaz. Raporların aynı gelir tanımını kullanmasını sağlar. Sipariş toplamı view’inde her satırın bir sipariş olduğunu sözleşmeye yaz. İçteki ORDER BY, dıştaki sorgunun sırasını garanti etmez.
View bir güvenlik sınırı olabilir, ancak izinler ve ownership chain ayrıca tasarlanmalıdır. SELECT * yerine açık sütunlar kullan; tablonun değişmesi tüketicinin sözleşmesini sessizce bozmasın. Indexed view ayrı bir mekanizmadır, SET seçenekleri ve yazma maliyeti vardır. Her view’i otomatik performans iyileştirmesi sanma. CREATE OR ALTER VIEW kendi batch’inin ilk ifadesi olmalıdır; SSMS’de GO ile ayır.
Tekrarlanan rapor mantığını merkezileştirmek için.
View’i önceden hesaplanmış tablo sanmak.
Aynı konu. Üç farklı derinlik.
SELECT OrderId, CustomerId FROM lab.SalesOrder WHERE Status = 'Paid';View’e taşınacak okuma sözleşmesi.
Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.
Önce kendin dene.
PaidOrders view’ini kullanarak müşteri bazında sipariş say.
Çözümü ve açıklamasını göster
SELECT CustomerId, COUNT(*) AS Orders FROM lab.PaidOrders GROUP BY CustomerId;Önce orta örnekteki view’i oluştur. Tabloya doğrudan erişimle aynı dokuz ücretli sipariş sayılır.