17 Ocak 2017 Salı
VIEW’ ları Şifrelemek
Bazı durumlarda View’ları oluşturan kaynak kodların başkaları tarafından görülmemesi istenebilir. Böyle bir durumda SQL Server’ın kendi içerisinde yer alan bir şifreleme mekanizması bu yapıları kullanıcı için şifreler. Burada dikkat edilmesi gereken en önemli nokta şifrelenmiş bir View’ın içeriğini biz dahil hiç kimsenin görememesidir. Bu nedenle şifreleme işlemi uygulanmadan önce kaynak kodların bir kopyasının mutlaka saklanması gerekir.
View’ları şifrelemek için ENCRYPTION komutu kullanılmaktadır.
ENCRYPTION komutu View oluşturulurken kullanılacağı gibi sonradan da kullanılabilir. Bu komutun genel yapısı şöyledir.
CREATE VIEW view_adı
WITH ENCRYPTION
AS
SELECT cümlesi
Burada dikkat edilmesi gereken bir diğer noktada, View’ın çalıştırılabileceği fakat kodlarının görülemeyeceğidir. Kaynak kodunu görmek için bir sistem prosedüründen faydalanalım. Query kısmına aşağıdaki komut yazıldığında ilgili View’ın şifrelendiğini belirten bir mesaj görüntülenir.
Şifreyi kaldırmak isterseniz View üzerinde yine bir değişiklik yaparak bunu yapabilirsiniz. Bunun için WITH ENCRYPTION komut satırını kaldırarak View’ı yeniden düzenleyebilirsiniz.
VIEW’ ları Silmek
Bir View’ı veritabanından kaldırmak(silmek) için DROP komutu kullanılmaktadır. Bu komut kullanıldığında view sistemden tamamen silinmiş olacaktır. DROP komutunun genel kullanımı aşağıdaki gibidir.
DROP VIEW view_adı
Örnek:
DROP VIEW Urunler
Birden Fazla Tablo Kullanmak
Bir JOIN komutu kullanılarak birden fazla tablodaki veriler bir VIEW oluşturularak defalarca sorgulanabilir. Genel olarak bu işlem için şöyle bir yapı kullanılır:
CREATE VIEW view_adı
AS
SELECT sütun_adları FROM tablo_1 JOIN tablo_2 ON birleştirme_şartı
VIEW’ larda Değişiklik Yapmak
Bir View üzerinde değişiklik yapılmak istenildiğinde ALTER VIEW komutu kullanılır. ALTER VIEW deyiminin genel yapısı aşağıdaki gibidir.
ALTER VIEW view_adi
AS
SELECT ifadesi
VIEW Sütunlarına İsim Vermek
View’lar da sütun adları isteğe göre değiştirilebilir. Eğer değiştirilmek istenmiyorsa filtrelenen ana tablodaki sütun adları ile aynı olacaktır.
Sütun adları ihtiyaca göre değiştirilebilir. View’larda sütun adları verilirken herhangi bir veri tipi belirtilmez. Bunun nedeni sorgulanan tablo baz alındığı için veri tipleri yine asıl tablodaki veri tipleri ile aynı olacaktır.
VIEW Oluşturmak
Görünümler tablolarla aynı özelliklere sahip olup en fazla 1024 tane sütundan oluşabilmektedir. Görünüm oluşturmak için CREATE VIEW komutu kullanılmaktadır.
Görünümün genel yapısı şöyledir:
CREATE VIEW view_adı
AS
SELECT sütunlar FROM tablo_adı
MS SQL Server üzerinde yeni bir Query açarak oluşturacağımız «bilgi» adlı View’a ait T-SQL kodlarını yazarak çalıştıralım.
Oluşturulan View’ lar ilgili veritabanının «views» sekmesinde yer almaktadır ve dbo.bilgi şeklinde görüntülenmektedir.
Oluşturduğumuz View’lar standart SQL komutlarına benzer şekilde çalıştırılmaktadır.
View oluşturma işlemini dilerseniz MS SQL Server’ da ilgili veritabanındaki «views» seçeneğini farenin sağ tuşuna basarak açılan menüden «New View…» diyerek te oluşturabilirsiniz.
«New View» seçeneğini tıkladığınızda karşınıza View’ı hangi tablo yada tablolardan oluşturacağınızı soran bir ekran gelecektir. Örneğimizi tblUrun tablosunu kullanarak yeniden yapalım.
tblUrun tablosu seçildiğinde View’da sorgulanması gereken alanların tek tek seçilmesi istenecektir.
Her seçilen alan bir SELECT ifadesi içerisine eklenir. Eğer bir filtreleme yapılacaksa Filter seçeneği içerisinde belirtilir.
Görünümün genel yapısı şöyledir:
CREATE VIEW view_adı
AS
SELECT sütunlar FROM tablo_adı
MS SQL Server üzerinde yeni bir Query açarak oluşturacağımız «bilgi» adlı View’a ait T-SQL kodlarını yazarak çalıştıralım.
Oluşturulan View’ lar ilgili veritabanının «views» sekmesinde yer almaktadır ve dbo.bilgi şeklinde görüntülenmektedir.
Oluşturduğumuz View’lar standart SQL komutlarına benzer şekilde çalıştırılmaktadır.
View oluşturma işlemini dilerseniz MS SQL Server’ da ilgili veritabanındaki «views» seçeneğini farenin sağ tuşuna basarak açılan menüden «New View…» diyerek te oluşturabilirsiniz.
«New View» seçeneğini tıkladığınızda karşınıza View’ı hangi tablo yada tablolardan oluşturacağınızı soran bir ekran gelecektir. Örneğimizi tblUrun tablosunu kullanarak yeniden yapalım.
tblUrun tablosu seçildiğinde View’da sorgulanması gereken alanların tek tek seçilmesi istenecektir.
Her seçilen alan bir SELECT ifadesi içerisine eklenir. Eğer bir filtreleme yapılacaksa Filter seçeneği içerisinde belirtilir.
VIEW (Görünüm) Nesnesi
Görünümler, veritabanı içerisinde önceden tanımlanmış tabloları kullanarak elde edilen geçici sanal tablolardır.
Bu tablolar veritabanında fiziksel herhangi bir yer kaplamazlar.
Görünümler, herhangi bir tablodaki belli alanların listelenmesini sağlarlar.
Bir veritabanı üzerinde eğer sık sorgulanan veriler var ise, bu verilerin hızlı ve basit bir şekilde sorgulanmalarını sağlamaktadırlar.
Tablolar olduğundan farklı gösterilmek istenildiğinde çeşitli filtreler kullanılır. Bu filtrelerden biri de görünümlerdir.
Görünümler kaydedilmiş sorgulardan oluşmaktadır.
Başka bir deyişle sorguları basitleştirmek bunların erişimlerini ve izinlerini düzenlemek, birbirinden farklı sunuculardaki benzer verileri karşılaştırmak ve bazı durumlarda da sorgu sürelerini kısaltmak için kullanılan gerçekte var olmayan sanal tablolardır.
Bu şekilde veritabanı üzerinde yer alan tablo yada tablolara daha kolay ve güvenli bir şekilde erişim yapılabilmektedir.
Bir görünüm ile birden fazla tablo üzerinde sorgulama yapılabilir. Bu haliyle karmaşık SQL ifadelerini daha da basitleştirmiş olur.
Oluşturulan bir görünüm ile veriler üzerinde herhangi bir güncelleme işlemi yapılamaz.
Bu yapılar sadece MS SQL Server, Oracle gibi ileri seviye veritabanı yönetim sistemlerinde bulunmaktadır. MS Access’ te bu yapılar yoktur.
Bir görünümün genel yapısı şekildeki gibidir.
Genel olarak görünümler aşağıdaki amaçlar için de kullanılmaktadırlar:
Kullanıcıların, bir tabloda yer alan sütun veya satırlarındaki önemli verilerini görmek.
Tablolarda bulunan verileri başka bir tablo formatında göstermek.
Karmaşık sorguları basitleştirmek.
CONTINUE Deyimi
Bu komut BREAK komutunun tam tersi durumunu gerçekleştirir.
BREAK komutunun aksine bu komut WHILE yapısının başına gitmeyi sağlar. Bir defaya mahsus CONTINUE komutundan sonraki kısımlar çalıştırılmaz.
Örnek: Döngü değeri 8 olduğunda, 8 değeri dışında kalan tüm değerleri ekrana yazdıralım.
BREAK Deyimi
BREAK komutu, bir döngü içerisinde belirlenen amaca ulaşıldığında döngünün kırılarak sonlandırılmasını sağlamaktadır.
Döngüden çıkıldığında WHILE’ın END’ini takip eden kodlardan program çalışmaya devam eder.
Örnek: 1’den 10’a kadar çalışan bir döngüde 8’e gelindiğinde döngüden çıkmasını sağlayalım.
DECLARE @sayac int
SET @sayac=0
WHILE (@sayac<10)
BEGIN
IF (@sayac=8)
BEGIN
PRINT 'Döngüden çikildi'
BREAK
END
SELECT @sayac=@sayac+1
PRINT @sayac
END
CASE Deyimi
CASE yapısı herhangi bir değişkenin birden fazla durumla karşılaştırmak için kullanılmaktadır. Genel yapısı şöyledir.
CASE
WHEN Şart_ifadesi1 THEN Değer1
WHEN Şart_ifadesi2 THEN Değer2
ELSE Değer3
END
Örnek: bir sınıftaki öğrencilerin not ortalamalarına bakarak “Geçti” yada “Kaldı” şeklinde ekrana listeleyen T-SQL cümleciği şöyle olacaktır.
Kaydol:
Kayıtlar (Atom)