MySQL

MySQL View Kullanımı: MySQL Görünümlerle Çalışın

Özet: Bu eğitimde, MySQL görünümleri hakkında bilgi edinecek ve görünümleri etkili bir şekilde manipüle etmeyi öğreneceksiniz.

Aşağıdaki tabloları inceleyelim: örnek veritabanındaki “islem”, “ogrenci” ve “kitap”.

Aşağıdaki sorgu yukarıdaki üç tabloyu kullanarak kitap almış ve teslim etmiş öğrencileri aldıkları kitap isimleri ile birlikte getirmektedir.

Bir sonraki seferde en çok tercih edilen kitap yada en çok kitap okuyan öğrenci gibi bir sorgu yapmak istediğimizde bu tabloyu tekrardan kullanabiliriz.

Bu sorguyu sonucunu elde tutmak için yada txt yada sql dosyası olarak saklayabiliriz. Gerektiğinde bunları tekrardan açıp kullanırız.

Ancak bu çok sağlıklı bir yöntem olmayacaktır. Bunun için MySQLde VIEWS( görünümleri) kullanabiliriz.

Doğru tanımı ile bir VIEW, veri tabanı kataloğunda saklanmış isimlendirilmiş bir sorgudan başkası değildir.

Yukarıdaki sorguyu daha sonra tekrar kullanmak için VIEW olarak veritabanı kataloğuna ekleyeceğiz.

MySQL Görünüm Oluşturma

Yeni bir görünüm oluşturmak için CREATE VIEW ifadesini kullanırsınız. Bu ifade, yukarıdaki sorguya dayalı olarak ogrenci_kitap adlı bir görünüm oluşturur:


CREATE VIEW ifadesini çalıştırdıktan sonra, MySQL görünümü oluşturur ve veritabanında saklar.

Bir VIEW oluşturulduğunda veri tabanında aşağıdaki gibi bir görünüme sahip olacaktır.(Not: HeideSQL)

Şimdi, SQL ifadelerinde bu görünümü bir tablo olarak referans olarak kullanabilirsiniz. Örneğin, ogrenci_kitap görünümünden veri sorgulayabilirsiniz:

Yukarıdaki sorgu 25 numaralı öğrencinin işlem yapmış olduğu kitapları göstermektedir.

Ayrıca, MySQL size hiçbir tabloya referans yapmayan bir görünüm oluşturma imkanı sağlar. Ancak, bu tür bir görünümü pratisyenlikte nadiren bulabilirsiniz.

Örneğin, aşağıdaki sorguyu çalıştırarak haftanın 7 gününü döndüren gunler adlı bir görünüm oluşturabilirsiniz:

Sorguyu çalıştırmak için;

Aşağıdaki gibi bir ekran çıktısı oluştur.

MySQL Görünümlerin Avantajları

MySQL görünümlerinin getirdiği avantajlar şunlardır:

  1. Karmaşık Sorguları Basitleştirme:
    • Görünümler, karmaşık sorguları basitleştirmeye yardımcı olur. Eğer sıkça kullanılan karmaşık bir sorgunuz varsa, buna dayalı bir görünüm oluşturabilirsiniz. Böylece sorguyu tekrar yazmak yerine basit bir SELECT ifadesi kullanarak görünüme referans yapabilirsiniz.
  2. İş Mantığını Tutarsız Kılmama:
    • Her sorguda aynı formülü sürekli olarak yazmanız gerekiyorsa veya karmaşık iş mantığına sahip bir sorgunuz varsa, bu mantığı görünüm içinde saklayarak ve karmaşıklığı gizleyerek bu mantığı sorgular arasında tutarlı hale getirebilirsiniz.
  3. Ek Güvenlik Katmanları Eklemek:
    • Bir tablo, kişisel ve bankacılık bilgileri gibi hassas verileri içerebilir.
    • Görünümler ve yetkiler kullanarak, kullanıcıların erişebileceği verileri sınırlayabilir ve sadece gerekli veriyi onlara açabilirsiniz.
    • Örneğin, “employees” tablosu, SSN ve adres bilgilerini içerebilir ve bu bilgilere sadece İnsan Kaynakları departmanının erişmesi gerekebilir. Genel İdare (GA) departmanına ise ad, soyad ve cinsiyet gibi genel bilgileri sunmak için bu sütunlara dayalı bir görünüm oluşturabilir ve GA departmanı kullanıcılarına bu görünüme erişim izni verebilirsiniz.
  4. Geriye Uyum Sağlama:
    • Eski sistemlerde, görünümler geriye uyumu sağlayabilir.
    • Örneğin, büyük bir tabloyu birçok küçük tabloya normalize etmek istiyorsunuz ve bu tabloya referans veren mevcut uygulamaları etkilemek istemiyorsunuz. Bu durumda, yeni tablolara dayalı olarak adı aynı olan bir görünüm oluşturabilirsiniz, böylece tüm uygulamalar, görünümü bir tablo gibi referans alabilir.
    • Unutmayın ki bir görünüm ve bir tablo aynı isme sahip olamaz, bu nedenle aynı isimde bir görünüm oluşturmadan önce tabloyu silmeniz gerekebilir.

MySQL Görünümü Yeniden Adlandırma


MySQL’de, görünümler ve tablolar aynı ad alanını paylaşırlar. Bu nedenle, bir görünümü yeniden adlandırmak için RENAME TABLE ifadesini kullanabilirsiniz.

Bir görünümü yeniden adlandırmak için RENAME TABLE ifadesinin temel sözdizimi şu şekildedir:

  • old_view_name: Yeniden adlandırılmak istenen mevcut görünümün adı.
  • new_view_name: Görünüme verilecek yeni ad.

Örnek kullanım:

Bu örnekte, “ogrenci_kitap” adlı bir görünümü “ogrenci_kitaplar” olarak yeniden adlandırır. Bu işlem, görünümün adını değiştirmenin yanı sıra, görünümün tanımlandığı sorguyu değiştirmez; sadece adı değişir.

MySQL Görünüm Düşürme

DROP VIEW ifadesi, bir görünümü veri tabanından tamamen siler. İşte DROP VIEW ifadesinin temel sözdizimi:

  • IF EXISTS: Bu isteğe bağlı bir bölümdür. Eğer belirtilirse ve veritabanında view_name adlı bir görünüm mevcut değilse, hata vermez ve sadece devam eder. Eğer belirtilmezse ve view_name adlı bir görünüm bulunmazsa bir hata alırsınız.
  • view_name: Silinmesi istenen görünümün adı.

Örnek kullanım:

Bu örnekte, eğer “ogrenci_kitaplar” adlı bir görünüm varsa, bu görünümü siler. Eğer “ogrenci_kitaplar” adlı bir görünüm yoksa, herhangi bir hata vermez.

Bu sözdiziminde, DROP VIEW anahtar kelimelerinden sonra silmek istediğiniz görünümün adını belirtirsiniz. İsteğe bağlı IF EXISTS seçeneği, görünümün yalnızca varsa koşullu olarak kaldırılmasını sağlar.

Birçok görünümü tek bir ifadeyle kaldırmak için aşağıdaki sözdizimini kullanabilirsiniz:

  • IF EXISTS: Bu isteğe bağlı bir bölümdür. Eğer belirtilirse ve veritabanında belirtilen tüm görünümler mevcut değilse, hata vermez ve sadece devam eder. Eğer belirtilmezse ve herhangi bir görünüm bulunmazsa bir hata alırsınız.
  • view_name1, view_name2, …: Silinmesi istenen birden fazla görünümün adları. Bu adlar arasında virgülle ayrım yapılır.

Örnek kullanım:

Bu örnekte, IF EXISTS belirtilmişse ve belirtilen görünümler mevcut değilse hata vermez. Belirtilen görünümler varsa, bu görünümleri siler. Eğer IF EXISTS belirtilmemişse ve herhangi bir görünüm bulunmazsa, bir hata alırsınız.

Yorum Yap

Yorum yapmak için tıklayın