MySQL Görünümler: Örneklerle Tablolardan Görünüm Nasıl Oluşturulur
Görünümler nelerdir? MySQL?
GÖRÜNTÜLER kendilerine ait herhangi bir veri depolamayan ancak diğer tablolarda saklanan verileri görüntüleyen sanal tablolardır. Başka bir deyişle VIEWS, SQL Sorgularından başka bir şey değildir. Görünüm, tablonun tüm satırlarını veya birkaç satırını içerebilir. A MySQL görünüm, bir tablodaki veya birçok tablodaki verileri gösterebilir.
MySQL Görünümler söz dizimi
Şimdi bir görünüm oluşturmak için kullanılan temel sözdizimine bakalım. MySQL.
CREATE VIEW `view_name` AS SELECT statement;
NEREDE
- “`Görünüm_adı` GÖRÜNÜMÜ OLUŞTUR” anlatır MySQL veritabanında "görünüm_adı" adlı bir görünüm nesnesi oluşturmak için sunucu
- “AS SELECT ifadesi” paketlenecek SQL ifadeleridir MySQL Görüntüleme. Bir SELECT ifadesi olabilir, bir tablodan veya birden fazla tablodan veri içerebilir.
Görünümler Nasıl Oluşturulur MySQL
Aşağıda, görünüm oluşturmak için adım adım bir süreç gösterilmektedir MySQL:
) 1 Adım “myflixdb”yi kullanarak ilk görünümümüzü oluşturun
Şimdi “myflixdb”yi kullanarak ilk viewımızı oluşturalım, üyeler tablosunda görülen sütunları kısıtlayan basit bir view oluşturacağız.
Yetkilendirme gereksinimlerinin, muhasebe departmanının üye tablosundan yalnızca üye numarasını, adını ve cinsiyetini görebildiğini varsayalım. Bunu başarmak için bir GÖRÜNÜM oluşturabilirsiniz –
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
) 2 Adım Görünüm düğümünü genişletme
Yukarıdaki betiğin çalıştırılması MySQL workbench'ü myflixdb'ye karşı çalıştırıp veritabanı gezginindeki views düğümünü genişlettiğimizde aşağıdaki sonuçları elde ediyoruz.
Accounts_v_members nesnesinin artık veritabanı görüntüleme nesnelerinde göründüğünü unutmayın.
) 3 Adım Bir SELECT ifadesini yürütün
Şimdi bir uygulama yapalım SELECT ifadesi aşağıda gösterildiği gibi görünümdeki tüm alanları seçen MySQL görünüm örneği oluşturun.
SELECT * FROM `accounts_v_members`;
) 4 Adım Bir komut dosyasını yürütün
Yukarıdaki betiğin çalıştırılması MySQL workbench'ü myflixdb ile karşılaştırdığımızda aşağıdaki sonuçlar ortaya çıkıyor.
membership_number | full_names | gender |
---|---|---|
1 | Janet Jones | Female |
2 | Janet Smith Jones | Female |
3 | Robert Phil | Male |
4 | Gloria Williams | Female |
5 | Leonard Hofstadter | Male |
6 | Sheldon Cooper | Male |
7 | Rajesh Koothrappali | Male |
8 | Leslie Winkle | Male |
9 | Howard Wolowitz | Male |
Sadece hesap departmanı için yetkili sütunlar döndürüldü. Üyeler tablosunda bulunan diğer ayrıntılar gizlendi.
Belirli bir görünümü oluşturan SQL ifadelerini görmek istiyorsak, bunu yapmak için aşağıda gösterilen betiği kullanabiliriz.
SHOW CREATE VIEW `accounts_v_members`;
Yukarıdaki betiği çalıştırmak size görünüm adını ve görünümü oluşturmak için kullanılan SQL SELECT ifadelerini verir.
Katılma ve Görüntülemeler MySQL
Şimdi birden fazla tablo ve kullanım içeren oldukça karmaşık bir örneğe bakalım katıldı.
Üyeler, filmler ve film kiralama olmak üzere üç (3) tablodan bilgi alan oluşturulan JOIN'i paketleyeceğiz. Aşağıda bunu başarmamıza yardımcı olan komut dosyası bulunmaktadır.
CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date` FROM `movierentals` AS mr INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number` INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;
Yukarıdaki komut dosyalarının yürütülmesi myflixdb'mizde general_v_movie_rentals adlı görünümü oluşturur
Şimdi general_v_movie_rentals adlı tablodaki tüm alanları seçelim.
SELECT * FROM `general_v_movie_rentals`;
Yukarıdaki betiğin çalıştırılması MySQL tezgâh myflixdb'ye karşı yaptığımız karşılaştırma bize aşağıda gösterilen sonuçları veriyor.
membership_number | full_names | title | transaction_date | return_date |
---|---|---|---|---|
1 | Janet Jones | Pirates of the Caribean 4 | 20-06-2012 | 28-06-2012 |
1 | Janet Jones | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
3 | Robert Phil | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
2 | Janet Smith Jones | Forgetting Sarah Marshal | 21-06-2012 | 24-06-2012 |
3 | Robert Phil | X-Men | 23-06-2012 | 28-06-2012 |
Üyeler, filmler ve film kiralama detayları hakkında bilgi almak için karmaşık JOIN sorgusunu yazmamız gerekmediğini unutmayın. Görünümü herhangi bir sıradan tablo gibi normal bir SELECT ifadesinde kullandık. Görünüm, myflixdb'nin üstünde çalışan uygulama sistemindeki herhangi bir yerden çağrılabilir.
Görünümleri Bırakma MySQL
DROP komutu bir görünümü silmek için kullanılabilir. veritabanı buna artık gerek yok. Bir görünümü bırakmak için temel sözdizimi aşağıdaki gibidir.
DROP VIEW ` general_v_movie_rentals `;
Görünümler neden kullanılmalı?
Görünümleri öncelikle aşağıdaki 3 nedenden dolayı kullanmak isteyebilirsiniz
- Sonuçta, kullanacaksınız SQL bilgi, veri gereksinimleri için veritabanı kullanacak uygulamalar oluşturmak. Uygulamanızda tabloların kendisini kullanmak yerine orijinal tablo yapısının VIEWS'ini kullanmanız önerilir. Bu, DB'nizi yeniden düzenlediğinizde eski kodunuzun, uygulamayı bozmadan görünüm aracılığıyla orijinal şemayı görmesini sağlar.
- VIEWS yeniden kullanılabilirliği artırır. Tekrar tekrar birleştirme içeren karmaşık sorgular oluşturmanız gerekmez. Tüm karmaşıklık, VIEWS kullanan tek bir sorgu satırına dönüştürülür. Bu tür yoğunlaştırılmış kod, uygulamanıza entegre edilmesi daha kolay olacaktır. Bu, yazım hatası olasılığını ortadan kaldıracak ve kodunuz daha okunabilir olacaktır.
- VIEWS veri güvenliğine yardımcı olur. Kullanıcılara yalnızca yetkili bilgileri göstermek ve kredi kartı numaraları gibi hassas verileri gizlemek için görünümleri kullanabilirsiniz.
ÖZET
- Görünümler sanal tablolardır; döndürülen verileri içermezler. Veriler SELECT deyiminde başvurulan tablolarda saklanır.
- Görünümler, yalnızca yetkili kullanıcılara amaçlanan verileri göstererek veritabanının güvenliğini artırır. Hassas verileri gizler.
- Görünümler, karmaşık sorguları tekrar tekrar yazmanıza gerek kalmadığı için hayatınızı kolaylaştırır.
- Bir GÖRÜNÜM üzerinde INSERT, UPDATE ve DELETE kullanmak mümkündür. Bu işlemler VIEW'ın temel tablolarını değiştirecektir. Dikkate alınması gereken tek şey, VIEW'ın başvurduğu tabloların tüm NOT NULL sütunlarını içermesi gerektiğidir. İdeal olarak, güncelleme için VIEWS'ı kullanmamalısınız.