MySQL Перегляди: як створити подання з таблиць із прикладами

Що таке перегляди в MySQL?

ДУМКИ це віртуальні таблиці, які не зберігають жодних власних даних, але відображають дані, що зберігаються в інших таблицях. Іншими словами, VIEWS - це не що інше, як запити SQL. Подання може містити всі або кілька рядків таблиці. А MySQL представлення може відображати дані з однієї таблиці або багатьох таблиць.

MySQL Синтаксис переглядів

Давайте тепер розглянемо базовий синтаксис, який використовується для створення представлення MySQL.

CREATE VIEW `view_name` AS SELECT statement;

ДЕ

  • «СТВОРИТИ ПЕРЕГЛЯД `назва_представлення`» розповідає 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. Такий стислий код буде легше інтегрувати у вашу програму. Це усуне ймовірність друкарських помилок і ваш код стане більш читабельним.
  • VIEWS допомагають у захисті даних. Ви можете використовувати перегляди, щоб показувати користувачам лише авторизовану інформацію та приховувати конфіденційні дані, наприклад номери кредитних карток.

Резюме

  • Представлення — це віртуальні таблиці; вони не містять даних, які повертаються. Дані зберігаються в таблицях, на які посилається оператор SELECT.
  • Перегляди покращують безпеку бази даних, показуючи авторизованим користувачам лише призначені дані. Вони приховують конфіденційні дані.
  • Перегляди полегшують життя, оскільки вам не потрібно постійно писати складні запити.
  • Можна використовувати INSERT, UPDATE і DELETE для VIEW. Ці операції змінять базові таблиці VIEW. Єдиним зауваженням є те, що VIEW має містити всі стовпці NOT NULL таблиць, на які він посилається. В ідеалі ви не повинні використовувати VIEWS для оновлення.

Підсумуйте цей пост за допомогою: