MySQL Изгледи: Как да създадете изглед от таблици с примери

Какво представляват 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, който може да съдържа данни от една или няколко таблици.

Как да създадете изгледи в MySQL

Следва стъпка по стъпка процес за създаване на изглед MySQL:

Стъпка 1) Създайте нашия първи изглед с помощта на „myflixdb“

Нека сега създадем нашия първи изглед с помощта на “myflixdb” ще създадем прост изглед, който ограничава колоните, виждани в таблицата с членове.

Да предположим, че изискванията за оторизация гласят, че счетоводният отдел може да вижда само номера, името и пола на члена от таблицата на члена. За да постигнете това, можете да създадете ИЗГЛЕД –

CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;

Стъпка 2) Разширяване на възела за изгледи

Изпълнение на горния скрипт в MySQL workbench срещу myflixdb и разширяването на възела за изгледи в изследователя на базата данни ни дава следните резултати.

Създайте изгледи в MySQL

Обърнете внимание, че обектът 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.

Пускане на изгледи MySQL

Командата DROP може да се използва за изтриване на изглед от база данни това вече не е необходимо. Основният синтаксис за премахване на изглед е както следва.

DROP VIEW ` general_v_movie_rentals `;

Защо да използвате изгледи?

Може да искате да използвате изгледи основно поради следните 3 причини

  • В крайна сметка вие ще използвате своя SQL знания, за създаване на приложения, които ще използват база данни за изискванията за данни. Препоръчително е да използвате VIEWS на оригиналната структура на таблицата във вашето приложение, вместо да използвате самите таблици. Това гарантира, че когато преработите вашата DB, вашият наследен код ще види оригиналната схема чрез изгледа, без да нарушава приложението.
  • VIEWS увеличава възможността за повторна употреба. Няма да се налага да създавате сложни заявки, включващи многократно обединяване. Цялата сложност се преобразува в един ред на заявка, използвайки VIEWS. Такъв съкратен код ще бъде по-лесен за интегриране във вашето приложение. Това ще елиминира шансовете за правописни грешки и вашият код ще бъде по-четлив.
  • VIEWS помагат за сигурността на данните. Можете да използвате изгледи, за да показвате само оторизирана информация на потребителите и да скривате чувствителни данни като номера на кредитни карти.

Oбобщение

  • Изгледите са виртуални таблици; те не съдържат данните, които се връщат. Данните се съхраняват в таблиците, посочени в оператора SELECT.
  • Изгледите подобряват сигурността на базата данни, като показват само предвидени данни на оторизирани потребители. Те крият чувствителни данни.
  • Изгледите улесняват живота, тъй като не трябва да пишете сложни заявки отново и отново.
  • Възможно е да използвате INSERT, UPDATE и DELETE на VIEW. Тези операции ще променят основните таблици на VIEW. Единственото съображение е, че VIEW трябва да съдържа всички NOT NULL колони на таблиците, към които препраща. В идеалния случай не трябва да използвате VIEWS за актуализиране.