20 Nisan 2024 Yazarı yhackup 3

MySQL View Kullanımları

Merhabalar,

Son derece basit bir dille view’lerden bahsetmeye çalışacağım bu sefer,

View’ler Mysql 5.0’dan sonra gelen bir sanal tablo özelliğidir. Üzerinde sadece Select sorguları gerçekleştirilebilir, update delete gibi tablo üzerinde değişiklik yapacak cümleler kullanılamaz. bu gibi işlemler gerçek tablolardan yapılmalıdır.

Peki View’leri neden kullanırız ?
View’leri sürekli kullanılan karmaşık sorguları kolaylaştırmak için kullanılır desem yanlış olmaz, Özellikle joinler kullanarak birden fazla 3 – 5 tabloya kanca atarak yaptığımız sorgularda bize büyük fayda sağlar.  Aşağıdaki örneklerle daha anlaşılır olacağını düşünüyorum.

Örnek kurgumuzda kendi tablomdan bir örnek vereyim, kullanıcılar sistemdeki bir duayı okuduklarında kullanıcı adı dua’nın id’si yazdığım bir minik tablom var, Tablomun boyutunu küçük tutmak için integer id’ler tutuyorum ama tekrar bu beğenen kullanıcıları okumak istediğimde bu anlamsız id’ler değil bana bu id’lerin sahipleri lazım olacak

Peki ne yapacağız, Bu tablodan veri  sorgular iken user id ile user tabloma gidip bu userin adını, ve dua tabloma gidip bu duanın detayını almam gerekiyor iki JOIN kulanmam gerekiyor.

SELECT ld.duaid,duas.konu, ld.user_id,user.username, ld.date  FROM like_dua as ld
INNER JOIN user ON (ld.user_id=user.id)
INNER JOIN duas ON (ld.duaid=duas.id)

Yani böyle bir sorgu kullanmam gerekiyor her defasında, Örnekte verilen tablo basit küçük bir tablo ama büyük projelerde bu cümle onlarca satıra ulaşabilir.
Sorgumuzun sonucu bu şekilde,

Peki doğru bana lazım olan sonuç bu ama her defasında bu kodları yazmak zorunda mıyım ? Değilsiniz işte tam burada devreye view’ler giriyor.

Bu Görüntülenen sonucu view tablo haline getiriyoruz, kullanımı çok kolay yukarıdaki Select sorgusunun başına Create cümlemizi yazıyoruz.

 

CREATE  VIEW dua_okuyanlar AS
SELECT ld.duaid,duas.konu, ld.user_id,user.username, ld.date  FROM like_dua as ld
INNER JOIN user ON (ld.user_id=user.id)
INNER JOIN duas ON (ld.duaid=duas.id)

dua_okuyanlar  adında bir View tablo oluşturduk. artık yukarıdaki sonuca ulaşmak için uzun uzun cümle yazmak yerine,

SELECT * FROM dua_okuyanlar

ümlesi ile aynı veriye (Her defasında Güncel) olarak ulaşabiliriz.

Asıl tabloda veri silindiğinde de , ana tabloya veri eklendiğinde de bu sanal tablomuz güncellenecektir.

Umarım anlaşılır her kesimin anlayabileceği şekilde anlatabilmişimdir.

 

Daha Fazla Bilgi için