MySQL Изгледи: Как да създадете изглед от таблици
⚡ Умно обобщение
MySQL Изгледите са виртуални таблици, които не съхраняват собствени данни, а вместо това представят резултата от съхранена SELECT заявка. Този ресурс обяснява как да създавате, заявявате, присъединявате и премахвате изгледи, с примери за изпълнение от базата данни myflixdb.

Какво представляват Views in MySQL?
ИЗГЛЕДИ са виртуални таблици, които не съхраняват никакви собствени данни, но показват данни, съхранени в други таблици. С други думи, VIEWS не са нищо друго освен SQL заявки. Един изглед може да съдържа всички или няколко реда от таблица. А MySQL изгледът може да показва данни от една или много таблици.
MySQL Изгледи синтаксис
Нека сега да разгледаме основния синтаксис, използван за създаване на изглед в MySQL.
CREATE VIEW `view_name` AS SELECT statement;
КЪДЕ
- „СЪЗДАВАНЕ НА ИЗГЛЕД `view_name`“ разказва MySQL сървър за създаване на изглед обект в базата данни с име `view_name`
- „Изявление AS SELECT“ е SQL изразите, които трябва да бъдат пакетирани в MySQL Изгледи. Това може да бъде оператор SELECT, който може да съдържа данни от една или няколко таблици.
Защо да използвате изгледи?
Преди да построите такава, е полезно да знаете какво всъщност ви носи една гледка.
Може да искате да използвате изгледи основно поради следните 3 причини
- В крайна сметка ще използвате вашето SQL знания, за да създавате приложения, които ще използват база данни за изисквания към данните. Препоръчително е да използвате VIEWS на оригиналната структура на таблиците във вашето приложение, вместо да използвате самите таблици. Това гарантира, че когато рефакторирате вашата база данни, вашият стар код ще вижда оригиналната схема чрез изгледа, без да нарушава приложението.
- VIEWS увеличава възможността за повторна употреба. Няма да се налага да създавате сложни заявки, включващи многократно обединяване. Цялата сложност се преобразува в един ред на заявка, използвайки VIEWS. Такъв съкратен код ще бъде по-лесен за интегриране във вашето приложение. Това ще елиминира шансовете за правописни грешки и вашият код ще бъде по-четлив.
- VIEWS помагат за сигурността на данните. Можете да използвате изгледи, за да показвате само оторизирана информация на потребителите и да скривате чувствителни данни като номера на кредитни карти.
Как да създадете изгледи в MySQL
След като синтаксисът и предимствата са установени, стъпките по-долу изграждат работещ изглед от край до край.
Следва стъпка по стъпка процес за създаване на изглед MySQL:
Стъпка 1) Създайте нашия първи изглед с помощта на „myflixdb“
Нека сега създадем нашия първи изглед с помощта на “myflixdb” ще създадем прост изглед, който ограничава колоните, виждани в таблицата с членове.
Да предположим, че изискванията за оторизация гласят, че счетоводният отдел може да вижда само номера, името и пола на члена от таблицата на членовете. За да постигнете това, можете да създадете VIEW –
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Стъпка 2) Разширяване на възела за изгледи
Изпълнение на горния скрипт в MySQL workbench срещу myflixdb и разширяването на възела за изгледи в изследователя на базата данни ни дава следните резултати.
Обърнете внимание, че обектът accounts_v_members вече е видим в обектите на изгледите на базата данни.
Стъпка 3) Изпълнете оператор SELECT
Нека сега изпълним a SELECT израз който избира всички полета от изгледа, както е показано по-долу MySQL създаване на пример за изглед.
SELECT * FROM `accounts_v_members`;
Стъпка 4) Изпълнете скрипт
Изпълнение на горния скрипт в MySQL workbench срещу myflixdb ни дава следните резултати, показани по-долу.
| 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 |
Върнати са само оторизираните колони за счетоводния отдел. Други подробности, намерени в таблицата с членове, са скрити.
Ако искаме да видим SQL изразите, които съставят определен изглед, можем да използваме скрипта, показан по-долу, за да направим това.
SHOW CREATE VIEW `accounts_v_members`;
Изпълнението на горния скрипт ви дава името на изгледа и операторите SQL SELECT, използвани за създаване на изгледа.
Присъединява се и преглежда MySQL
Изглед с една таблица е най-простият случай. Изгледите стават много по-ценни, когато обгръщат заявка с няколко таблици.
Нека сега да разгледаме един доста сложен пример, който включва множество таблици и употреби присъединява.
Ние ще пакетираме създадения JOIN, който получава информация от три (3) таблици, а именно членове, филми и филми под наем. По-долу е скриптът, който ни помага да постигнем това.
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`;
Изпълнението на горните скриптове създава изгледа с име general_v_movie_rentals в нашия myflixdb
Нека сега изберем всички полета от таблица с име general_v_movie_rentals.
SELECT * FROM `general_v_movie_rentals`;
Изпълнение на горния скрипт в MySQL работна маса срещу myflixdb ни дава следните резултати, показани по-долу.
| 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 |
Обърнете внимание, че не трябваше да пишем сложната JOIN заявка, за да получим информация за членове, филми и подробности за наемането на филми. Ние просто използвахме изгледа в обикновен оператор SELECT като всяка друга обикновена таблица. Изгледът може да бъде извикан от всяко място в приложната система, работеща върху myflixdb.
Спадping Изгледи в MySQL
Командата DROP може да се използва за изтриване на изглед от база данни това вече не е необходимо. Основният синтаксис за премахване на изглед е както следва.
DROP VIEW `general_v_movie_rentals`;
Спадping Изгледът премахва само съхранената заявка; основните таблици и техните данни остават недокоснати.

