View (Harici Türetilmiş Tablolar)

VIEW komutu adlandırılmış bir tablo ifadesidir ve bir SQL Server veritabanı, VIEW tanımını meta veri olarak depolar. Hadi bu komutun nasıl işlediğini öğrenelim.

VIEW komutu adlandırılmış bir tablo ifadesidir ve bir SQL Server veritabanı, VIEW tanımını meta veri olarak depolar. Hadi bu komutun nasıl işlediğini öğrenelim.

View (Harici Türetilmiş Tablolar)

create view liste
as
select * from ogrenciler
go

Kullanımı

select * from liste

Oluşturulan view i silmek için ise
drop view liste
cümleciği kullanılır

Oluşturulan view i değiştirmek için alter kullanılır
alter view liste
as
select adi,soyadi from ogrenciler
go

SCHEMABINDING seçeneği

herhangi bir tabloyla ilgili view oluşturulduktan sonra o tablonun kayıt deseni değiştirildiğinde view çalışmaz hala gelir. View schemabind seçeneği ile oluşturulduktan sonra kayıt deseninde bir değişiklik yapılamaz.

Kullanım Şartları

1.select ten sonra * ifadesi kullanılamaz, alan listesi yazılmalıdır.

2.tablo adından önce tablolar için dbo ifadesi yazılmalıdır. dbo.ogrenciler gibi

 

Create View liste
with schemabinding
as
select adi,soyadi,numara from dbo.ogrenciler
go

view i oluşturduktan sonra kayıt deseninde bir değişiklik yapılmasın, yapılmaya çalıştığında hata döndürerek bir nevi kullanıcıyı view var biçiminde uyarsın.

Drop View Liste
liste view i silindi

ENCRYPTION seçeneği

View oluşturulur, oluşturulduktan sonra koduna bakılamaz.

create view dene
with ENCRYPTION
as

select ogrenci.adi,ogrenci.soyadi,notlar.notu from dbo.ogrenci
inner join dbo.notlar on (ogrenci.numara=notlar.notu)
go

Bu seçenekle koda bakılması engellenen view eski haline getirilemez. Ama Alter View ile with encryption kaldırılabilir

create view dene
as

select ogrenci.adi,ogrenci.soyadi,notlar.notu from dbo.ogrenci
inner join dbo.notlar on (ogrenci.numara=notlar.notu)
go

With Check Option

Where kullanarak oluşturduğumuz view de bu seçneği kullanaram where şartına uymayan kayıt ekleme işlemini yaptırmayız.

Create View liste
as
select adi,soyadi,numara from dbo.ogrenciler where adi='fatih'
with check option
go

adi fatih haricinde bir kayıt eklenemez (insert into ile)

Veri Ekleme / Silme /Güncelleme

Veri ekleme (INSERT) ve veri silme (DELETE) işlemlerindede view kullanılabilir. Fakat tablo ismi olarak kullanılabilir.

create view liste
as
select adi,soyadi from ogrenciker
go
view oluşturuldu

insert into liste values('fatih','topcu')
insert into dan onra tablo adı değil view adı yazıldı

delete from liste
tablo adı kısmında view kullanıldı

Bir Soru: Acaba tablo adında view kullanılırken where şartı kullanılabilir mi?

 

View de aşağıdakiler kullanılamaz

  • View içerisinde select into kullanılamaz.
  • View içerisinde Geçici Tablolar (tablo adı # ile başlayan tablolar ) kullanılamaz.
  • View ler parametre kabul etmez. Parametreli kullanımları yoktur. (parametreli kullanım için benzer özelliklere sahip User Defined Fonksiyonlar kullanılır)
  • View içerisinde compute ve compute by ifadeleri kullanılamaz.


Viewler sadece yazılan sorgu ifadelerini saklarlar. Tablo sonuçlarını saklamazlar.

Telefon +90 505 747 42 84
Email info@devedijital.com
Adres
Tacettin Veli Mahallesi Halit Narin Caddesi Bahadır Plaza Kat:11 Daire:41 38230 Deve Dijital Melikgazi/Kayseri/Türkiye