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
Viewler sadece yazılan sorgu ifadelerini saklarlar. Tablo sonuçlarını saklamazlar.