MySQL Views: How to Create View from Tables
โก Akฤฑllฤฑ รzet
MySQL Views are virtual tables that store no data of their own and instead present the result of a stored SELECT query. This resource explains how to create, query, join, and drop views, with runnable examples from the myflixdb database.

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 neden kullanฤฑlmalฤฑ?
Before building one, it helps to know what a view actually buys you.
Gรถrรผnรผmleri รถncelikle aลaฤฤฑdaki 3 nedenden dolayฤฑ kullanmak isteyebilirsiniz
- Ultimately, you will use your SQL knowledge, to create applications, which will use a database for data requirements. Itโs recommended that you use VIEWS of the original table structure in your application instead of using the tables themselves. This ensures that when you refactor your DB, your legacy code will see the original schema via the view without breaking the application.
- 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.
Gรถrรผnรผmler Nasฤฑl Oluลturulur MySQL
With the syntax and the benefits established, the steps below build a working view end to end.
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.
Suppose authorization requirements state that the accounts department can only see memberโs number, name and gender from the memberโs table. To achieve this you can create a VIEW โ
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 |
Only the authorized columns for accounts department have been returned. Other details found in the members table have been hidden.
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
A single-table view is the simplest case. Views become far more valuable when they wrap a multi-table query.
ล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.
Damlaping Gรถrรผntรผleme sayฤฑsฤฑ 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`;
Damlaping a view removes only the stored query; the underlying tables and their data are untouched.

