180 likes | 377 Views
SQL VIEW. View. View’ler select ifadesi ile tanımlanmış sanal tablolar dır. Temel amacı base tabloların içerisinden veri kümesi getirip ortaya çıkan sonucu sanal tabloymuş gibi yeniden sorgulayabilmemizi sağlamaktır. View’ler;. karmaşık sorguları basitleştirmek;
E N D
View • View’ler select ifadesi ile tanımlanmış sanal tablolardır. Temel amacı base tabloların içerisinden veri kümesi getirip ortaya çıkan sonucu sanal tabloymuş gibi yeniden sorgulayabilmemizi sağlamaktır.
View’ler; • karmaşık sorguları basitleştirmek; • sorgu süresini kısaltmak ve ağ üzerindeki trafiği düşürmek; • erişim izinlerini düzenlemek; • farklı sunuculardaki benzer verileri karşılaştırmak için kullanılır.
Özellikleri 1- Biradet select sorgusundanoluşur. 2- Tablo gibi sorgulanabilir. 3- Yeni kayıt eklenebilir (Gruplama sorgularıve diğerbazıdurumlar hariç) 4- Mevcut kayıtlar değiştirilebilir. (Gruplamasorguları ve diğerbazı durumlar hariç) 5- Kayıtlar silinebilir(Gruplama sorgularıve diğerbazıdurumlar hariç) 6- Bazı kolonlar hesaplama ile oluşur. Bu kolonlar güncellenemez. 7- Tablodaki kısıtlamalar view’leri de etkiler. 8- View’i oluşturan sorguda ORDER BY deyimi bulunamaz.
View Oluşturma • View oluşturmak içinCREATE VIEW ifadesi kullanılır. • Kullanımı • CREATE VIEW view_adı • AS • SELECT sütun_adları • FROM temel_tablo
Örnek create view vwComp as select CompanyName, OrderDate from Customers as c join Orders as o on c.CustomerID=o.CustomerID • En fazla 1024 sütun oluşturulabilir.
View 2 şekilde oluşturulabilir: • T-SQL kod yazarak • Object Explorer’da veritabanı görünümünden New View komutunu vererek. • Oluşturulan view aşağıdaki şekilde çalıştırılır. • select * from view_adı
View’de Değişiklik Yapmak • View üzerinde değişiklik yapmak için ALTER deyimi kullanılır. • ALTER VIEW view_adı • WITH seçenekler • AS • SELECT ifadesi
View Silmek • View’leri silmek için DROP deyimi kullanılır. • DROP VIEW view_adı
with schemabinding ifadesi • with schemabinding view’in bağlı bulunduğu tablodaki kolonları kilitleyip o kolonların silinmesini engeller. • ALTER VIEW view_adı • WITH schemabinding • AS • SELECT ifadesi
with encryption ifadesi • Viewleri şifreleyip sorguların görünür olmasını engeller. • ALTER VIEW view_adı • WITH encryption • AS • SELECT ifadesi
Viewlerde CRUD işlemleri • Kural: View içerisinde bir tablo bulunuyorsa Insert, Delete gibi işlemleri yapabiliriz, aksi halde yapamayız.
Örnek create view vwProductsLite as select ProductName, UnitPrice, UnitsInStock from Products insert into vwProductsLite(ProductName, UnitPrice, UnitsInStock) values('Karpuz', 12, 1000) delete vwProductsLite where ProductName = 'Karpuz'
Soru 1 • SiparisDetay tablosundan, tutar değerini de içeren vw_SiparisDetay isminde bir view oluşturunuz (tutar = miktar * fiyat)
Soru 2 • vw_SiparisDetay view’ini sorgulayarak 4 nolu siparişin içeriğini listeleyiniz.
Soru 3 • vw_SiparişDetay viewini sorgulayarak 4 nolu siparişte bulunun ürünlerin miktar toplamını ve tutar toplamını bulan sorgu yazınız.
Soru 4 • Vw_SiparisDetay view’ine aşağıdaki veriyi ekleyiniz. • Sipariş No:1 • Urun Kodu: F • Fiyat: 1.7 • Miktar: 3 • Birimi: Paket