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

Что такое представления в MySQL?

ПРОСМОТРЫ — это виртуальные таблицы, которые не хранят никаких собственных данных, а отображают данные, хранящиеся в других таблицах. Другими словами, ПРЕДСТАВЛЕНИЯ — это не что иное, как SQL-запросы. Представление может содержать все или несколько строк таблицы. Представление MySQL может отображать данные из одной таблицы или нескольких таблиц.

Синтаксис представлений MySQL

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

CREATE VIEW `view_name` AS SELECT statement;

ГДЕ

  • «СОЗДАТЬ ПРЕДСТАВЛЕНИЕ `view_name`» сообщает серверу MySQL создать объект представления в базе данных с именем `view_name`
  • «Оператор AS SELECT» — это операторы SQL, которые должны быть упакованы в представления MySQL. Это может быть оператор SELECT, который может содержать данные из одной таблицы или нескольких таблиц.

Как создавать представления в MySQL

Фоллоwing это пошаговый процесс создания представления в MySQL:

Шаг 1) Создайте наше первое представление, используя «myflixdb».

Давайте теперь создадим наше первое представление, используя «myflixdb». Мы создадим простое представление, которое ограничивает столбцы, видимые в таблице участников.

Предположим, что в требованиях авторизации указано, что бухгалтерия может видеть только номер, имя и пол участника из таблицы участника. Для этого вы можете создать VIEW –

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

Шаг 2) Расширение узла представлений

Выполнение приведенного выше сценария в рабочей среде MySQL для myflixdb и расширение узла представлений в проводнике базы данных дает нам следующее:wing результаты.

Создание представлений в MySQL

Обратите внимание, что объект account_v_members теперь виден в объектах представлений базы данных.

Шаг 3) Выполнить оператор SELECT

Давайте теперь выполним Оператор SELECT который выбирает все поля из представления, как показано в примере создания представления MySQL ниже.

SELECT * FROM `accounts_v_members`;

Шаг 4) Выполнить скрипт

Выполнение приведенного выше сценария в рабочей среде MySQL против myflixdb дает нам следующее:wing результаты показаны ниже.

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

Были возвращены только авторизованные столбцы для бухгалтерии. Другое деtails найденные в таблице участников были скрыты.

Если мы хотим увидеть операторы SQL, составляющие определенное представление, мы можем использовать для этого сценарий, показанный ниже.

SHOW CREATE VIEW `accounts_v_members`;

Выполнение приведенного выше сценария дает вам имя представления и инструкции SQL SELECT, используемые для создания представления.

Объединения и представления в MySQL

Давайте теперь посмотрим на довольно комplex пример, который включает в себя несколько таблиц и использует присоединяется.

Мы упакуем созданный 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 дает нам следующееwing результаты показаны ниже.

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

Обратите внимание, что нам не нужно было писать complex Присоединяйтесь к запросу, чтобы получить информацию об участниках, фильмах и прокате фильмов.tails. Мы просто использовали представление в обычном операторе SELECT, как и любую другую обычную таблицу. Представление можно вызвать из любой точки системы приложений, работающей поверх myflixdb.

Удаление представлений в MySQL

Команда DROP может использоваться для удаления представления из база данных это больше не требуется. Основной синтаксис удаления представления следующий.

DROP VIEW ` general_v_movie_rentals `;

Зачем использовать представления?

Возможно, вы захотите использовать представления в первую очередь для следующих целей:wing 3 причинам

  • В конечном итоге вы будете использовать свой SQL знаний, для создания приложений, которые будут использовать базу данных для удовлетворения потребностей в данных. Рекомендуется использовать VIEWS исходной структуры таблицы в вашем приложении вместо использования самих таблиц. Это гарантирует, что при рефакторинге вашей БД ваш устаревший код увидит исходную схему через представление, не нарушая работу приложения.
  • ВИДЫ повышают возможность повторного использования. Вам не придется создавать ком.plex запросы, включающие повторные соединения. Все комplexity преобразуется в одну строку запроса с использованием VIEWS. Такой сжатый код будет легче интегрировать в ваше приложение. Это устранит вероятность опечаток и ваш код станет более читабельным.
  • VIEWS помогают обеспечить безопасность данных. Вы можете использовать представления, чтобы показывать пользователям только разрешенную информацию и скрывать конфиденциальные данные, такие как номера кредитных карт.

Итоги

  • Представления — это виртуальные таблицы; они не содержат возвращаемых данных. Данные хранятся в таблицах, на которые ссылается оператор SELECT.
  • Представления улучшают безопасность базы данных, шоwing только предназначенные данные для авторизованных пользователей. Они скрывают конфиденциальные данные.
  • Просмотры облегчают жизнь, так как вам не нужно писать com.plex запросы снова и снова.
  • В представлении можно использовать INSERT, UPDATE и DELETE. Эти операции изменят базовые таблицы представления. Единственное соображение состоит в том, что VIEW должен содержать все столбцы NOT NULL таблиц, на которые он ссылается. В идеале вам не следует использовать VIEWS для обновления.