MySQL Представления: как создать представление из таблиц с примерами
Что такое просмотры MySQL?
ПРОСМОТРЫ — это виртуальные таблицы, которые не хранят никаких собственных данных, а отображают данные, хранящиеся в других таблицах. Другими словами, ПРЕДСТАВЛЕНИЯ — это не что иное, как 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». Мы создадим простое представление, которое ограничивает столбцы, видимые в таблице участников.
Предположим, что в требованиях авторизации указано, что бухгалтерия может видеть только номер, имя и пол участника из таблицы участника. Для этого вы можете создать VIEW –
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Шаг 2) Расширение узла представлений
Выполнение приведенного выше сценария в MySQL Workbench с myflixdb и расширение узла представлений в обозревателе баз данных дает нам следующие результаты.
Обратите внимание, что объект account_v_members теперь виден в объектах представлений базы данных.
Шаг 3) Выполнить оператор SELECT
Давайте теперь выполним Оператор 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 `;
Зачем использовать представления?
Возможно, вы захотите использовать представления в первую очередь по следующим трем причинам.
- В конечном итоге вы будете использовать свой SQL знаний, для создания приложений, которые будут использовать базу данных для удовлетворения потребностей в данных. Рекомендуется использовать VIEWS исходной структуры таблицы в вашем приложении вместо использования самих таблиц. Это гарантирует, что при рефакторинге вашей БД ваш устаревший код увидит исходную схему через представление, не нарушая работу приложения.
- ВИДЫ повышают возможность повторного использования. Вам не придется неоднократно создавать сложные запросы, включающие соединения. Вся сложность преобразуется в одну строку запроса с использованием VIEWS. Такой сжатый код будет легче интегрировать в ваше приложение. Это устранит вероятность опечаток и ваш код станет более читабельным.
- VIEWS помогают обеспечить безопасность данных. Вы можете использовать представления, чтобы показывать пользователям только разрешенную информацию и скрывать конфиденциальные данные, такие как номера кредитных карт.
Итого
- Представления — это виртуальные таблицы; они не содержат возвращаемых данных. Данные хранятся в таблицах, на которые ссылается оператор SELECT.
- Представления повышают безопасность базы данных, показывая авторизованным пользователям только нужные данные. Они скрывают конфиденциальные данные.
- Представления упрощают жизнь, поскольку вам не придется снова и снова писать сложные запросы.
- В представлении можно использовать INSERT, UPDATE и DELETE. Эти операции изменят базовые таблицы представления. Единственное соображение состоит в том, что VIEW должен содержать все столбцы NOT NULL таблиц, на которые он ссылается. В идеале вам не следует использовать VIEWS для обновления.