Mysql View Kullanımı

Eğer karmaşık select sorguları kullanıyorsanız view kullanmak işinize çok yarayacaktır. Verileri daha düzenli halde görebilmemizi sağlayan view'ler Mysql 5.0'den sonra ortaya çıktı. View'lar birer sanal tablodur. Yani bir tablo gibi davranırlar, bu yüzden oluşturduğumuz view'lar üzerinde select işlmleri gerçekleştirebiliyoruz.

Bu güzel yeniliği basit bir örnekle kullanalım kullanalım. Karmaşık select sorguları için kullanıldığından örnek içinde iki tabloyu birleştirip verileri almaya yarayan bir view yaratacağız.

Öncelikle tablolarımızı oluşturup biraz veri ekleyelim. Örnekte kitaplar ve yazarlar tablosu olacak. Bir yazarın birden fazla kitabı olduğuna göre kitaplar tablosuna yazarlar tablosunun id numarasını referans alan bir komşu anahtar sütünü ekleyeceğiz. Tabloların yapısı:

CREATE TABLE IF NOT EXISTS yazarlar (
  id int(10) NOT NULL AUTO_INCREMENT,
  isim varchar(25) COLLATE utf8_bin NOT NULL,
  soyisim varchar(25) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (id)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_bin ;

CREATE TABLE IF NOT EXISTS kitaplar (
  id int(10) NOT NULL AUTO_INCREMENT,
  yazar_id int(10) NOT NULL,
  isbn bigint(11) NOT NULL,
  kitap_ismi varchar(50) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (id),
  KEY yazar_id (yazar_id) -- Komşu anahtar sütünümüz
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_bin ;

Şimdi view yaratacak sql sorgumuzu yazalım:
CREATE  VIEW kitap_bilgileri AS 
SELECT kitaplar.kitap_ismi AS kitap_ismi,
kitaplar.isbn AS kitap_isbn,
yazarlar.isim AS kitap_yazar_ismi,
yazarlar.soyisim AS kitap_yazar_soyisim
 FROM kitaplar INNER JOIN yazarlar ON (kitaplar.yazar_id = yazarlar.id)
Tablolara biraz veri girdikten sonra (kitab bilgilerini girerken yazar.id numarasına göre girmeliyiz) ve oluşturduğumuz View'ı kullanalım:
SELECT * FROM `kitap_bilgileri`
Ve istenilen sonuç:

view-mysql-kullanımı

Sanal View tablomuzun yapısı:

view-mysql-kullanımı 2

View oluşturma bu şekilde yapılıyor. Kendi tablolarınızda daha karışık view'lar yaratarak Mysql sunucunuzdaki verileri daha rahat görebilirsiniz.

Not: Where ya da Join ifadesi ile birleştirilen tablo sütünların (alanların) indexlenmesi performans açısından daha iyidir.
yazan Zülküf Küçüközer tarih   30th August 2009
primary key words  View | Mysql | Veritabanı okunma  16628
secondary key words  Select
writing imsakiye writing 28th July 2010
peki viewler kolaylığın yanı sıra performans olarakda bi etikide bulunurmu olumlu olumsuz ?
writing zülküf küçüközer writing 10th August 2010
View'lar performansı arttırmak için kullanılmıyorlar. Performansa olumsuz bir etkisi olmuyor, olumlu olarak daha önce belki belleğe atılmış bir select sorgusunun sonucunu çalıştırmadan getirebildiği için performansa katkıda bulunabilir. Daha çok karmaşık select sorgularını direk çalıştırmak için kullanılıyorlar.
writing Kerim Y?lmaz writing 15th April 2011
Anlatım için teşekkürler. Kullanılması gereken bir özellik.
writing Yunus Temelli writing 7th February 2012
View size sağladığı bir avantajda veritabanımızın yazılımdan biraz daha bağımsız çalışması buda veritabanımıza bağlantı yaptığınız programlama dilini değiştirmeniz gerektiğinde büyük avantaj sağlıyor.
writing master writing 17th May 2013
peki bu viewler wep tasarim la ne alakasi var veri tabaninda kullaniliyor benim bildigim kadar....
writing Zülküf Küçüközer writing 29th May 2013
View'lar veritabani context'inde yaratilirlar. Bü yüzden view ve veritabani birbirine baglidir.