MySQL Представлення: Як створити представлення з таблиць
⚡ Розумний підсумок
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.

Що таке перегляди в MySQL?
ДУМКИ це віртуальні таблиці, які не зберігають жодних власних даних, але відображають дані, що зберігаються в інших таблицях. Іншими словами, VIEWS - це не що інше, як запити SQL. Подання може містити всі або кілька рядків таблиці. А MySQL представлення може відображати дані з однієї таблиці або багатьох таблиць.
MySQL Синтаксис переглядів
Давайте тепер розглянемо базовий синтаксис, який використовується для створення представлення MySQL.
CREATE VIEW `view_name` AS SELECT statement;
ДЕ
- «СТВОРИТИ ПЕРЕГЛЯД `назва_представлення`» розповідає MySQL сервер для створення об’єкта перегляду в базі даних під назвою `view_name`
- «Інструкція AS SELECT» це оператори SQL, які потрібно запакувати в MySQL Перегляди. Це може бути оператор SELECT, який може містити дані з однієї таблиці або кількох таблиць.
Навіщо використовувати перегляди?
Before building one, it helps to know what a view actually buys you.
Можливо, ви захочете використовувати представлення переважно з наступних 3 причин
- 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. Такий стислий код буде легше інтегрувати у вашу програму. Це усуне ймовірність друкарських помилок і ваш код стане більш читабельним.
- VIEWS допомагають у захисті даних. Ви можете використовувати перегляди, щоб показувати користувачам лише авторизовану інформацію та приховувати конфіденційні дані, наприклад номери кредитних карток.
Як створити перегляди в MySQL
With the syntax and the benefits established, the steps below build a working view end to end.
Нижче наведено крок за кроком процес створення перегляду MySQL:
Крок 1) Створіть наше перше представлення за допомогою «myflixdb»
Давайте тепер створимо наше перше представлення за допомогою «myflixdb». Ми створимо просте представлення, яке обмежує стовпці, видимі в таблиці учасників.
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) Розгортання вузла переглядів
Виконання наведеного вище сценарію в 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 |
Only the authorized columns for accounts department have been returned. Other details found in the members table have been hidden.
Якщо ми хочемо побачити оператори SQL, які складають певне представлення, ми можемо використати для цього сценарій, показаний нижче.
SHOW CREATE VIEW `accounts_v_members`;
Виконання наведеного вище сценарію дає вам назву перегляду та оператори SQL SELECT, які використовуються для створення перегляду.
Приєднується та переглядає MySQL
A single-table view is the simplest case. Views become far more valuable when they wrap a multi-table query.
Давайте тепер розглянемо досить складний приклад, який включає кілька таблиць і використання приєднується.
Ми запакуємо створений 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 a view removes only the stored query; the underlying tables and their data are untouched.

