MySQL Widoki: Jak utworzyć widok z tabel
⚡ Inteligentne podsumowanie
MySQL Widoki to wirtualne tabele, które nie przechowują własnych danych, a zamiast tego prezentują wynik zapisanego zapytania SELECT. Ten materiał wyjaśnia, jak tworzyć, wykonywać zapytania, łączyć i usuwać widoki, z przykładami z bazy danych myflixdb.
W czym są widoki MySQL?
POGLĄDY to wirtualne tabele, które nie przechowują żadnych własnych danych, ale wyświetlają dane przechowywane w innych tabelach. Innymi słowy, WIDOKI to nic innego jak zapytania SQL. Widok może zawierać wszystkie lub kilka wierszy tabeli. A MySQL widok może pokazywać dane z jednej tabeli lub wielu tabel.
MySQL Składnia widoków
Przyjrzyjmy się teraz podstawowej składni używanej do tworzenia widoku w MySQL.
CREATE VIEW `view_name` AS SELECT statement;
WHERE
- „UTWÓRZ WIDOK „nazwa_widoku”” mówi MySQL serwer, aby utworzyć obiekt widoku w bazie danych o nazwie `nazwa_widoku`
- „Oświadczenie AS SELECT” to instrukcje SQL, które mają być spakowane w pliku MySQL Wyświetlenia. Może to być instrukcja SELECT, która może zawierać dane z jednej tabeli lub wielu tabel.
Dlaczego warto korzystać z widoków?
Zanim zbudujesz dom, warto wiedzieć, co tak naprawdę zyskujesz dzięki widokowi.
Widoki możesz chcieć używać głównie z następujących 3 powodów
- Ostatecznie wykorzystasz swoje SQL Wiedza, aby tworzyć aplikacje, które będą wykorzystywać bazę danych do obsługi danych. Zaleca się korzystanie z WIDOKU oryginalnej struktury tabel w aplikacji, zamiast z samych tabel. Dzięki temu po refaktoryzacji bazy danych, starszy kod będzie widział oryginalny schemat za pośrednictwem widoku, bez zakłócania działania aplikacji.
- VIEWS zwiększają możliwość ponownego użycia. Nie będziesz musiał tworzyć złożonych zapytań obejmujących łączenia wielokrotnie. Cała złożoność jest konwertowana do pojedynczego wiersza zapytania za pomocą VIEWS. Taki skondensowany kod będzie łatwiejszy do zintegrowania w Twojej aplikacji. Wyeliminuje to ryzyko literówek, a Twój kod będzie bardziej czytelny.
- VIEWS pomagają w zabezpieczaniu danych. Możesz używać widoków, aby pokazywać użytkownikom tylko autoryzowane informacje i ukrywać poufne dane, takie jak numery kart kredytowych.
Jak tworzyć widoki w MySQL
Po ustaleniu składni i korzyści wykonaj poniższe kroki, aby utworzyć widok roboczy od początku do końca.
Poniżej przedstawiono krok po kroku proces tworzenia widoku w MySQL:
Krok 1) Utwórz nasz pierwszy widok za pomocą „myflixdb”
Stwórzmy teraz nasz pierwszy widok za pomocą „myflixdb”. Stworzymy prosty widok, który ogranicza kolumny widoczne w tabeli członków.
Załóżmy, że wymagania autoryzacyjne stanowią, że dział księgowości może zobaczyć tylko numer, imię i nazwisko oraz płeć członka z tabeli członków. Aby to osiągnąć, możesz utworzyć WIDOK –
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Krok 2) Rozwijanie węzła widoków
Wykonanie powyższego skryptu w MySQL workbench z myflixdb i rozwinięcie węzła views w eksploratorze bazy danych daje nam następujące wyniki.
Uwaga: obiekt account_v_members jest teraz widoczny w obiektach widoków bazy danych.
Krok 3) Wykonaj instrukcję SELECT
Wykonajmy teraz a SELECT oświadczenie który wybiera wszystkie pola z widoku, jak pokazano poniżej MySQL utwórz przykład widoku.
SELECT * FROM `accounts_v_members`;
Krok 4) Wykonaj skrypt
Wykonanie powyższego skryptu w MySQL workbench i myflixdb dają nam następujące wyniki, pokazane poniżej.
| 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 |
Zwrócono tylko autoryzowane kolumny dla działu księgowości. Pozostałe szczegóły znalezione w tabeli członków zostały ukryte.
Jeśli chcemy zobaczyć instrukcje SQL tworzące konkretny widok, możemy w tym celu skorzystać ze skryptu pokazanego poniżej.
SHOW CREATE VIEW `accounts_v_members`;
Wykonanie powyższego skryptu daje nazwę widoku i instrukcje SQL SELECT użyte do utworzenia widoku.
Dołącza i ogląda w MySQL
Widok pojedynczej tabeli to najprostszy przypadek. Widoki stają się o wiele bardziej wartościowe, gdy obejmują zapytanie obejmujące wiele tabel.
Przyjrzyjmy się teraz dość złożonemu przykładowi, który obejmuje wiele tabel i zastosowań łączy.
Spakujemy utworzony JOIN, który pobiera informacje z trzech (3) tabel, a mianowicie członków, filmów i wypożyczeń filmów. Poniżej znajduje się skrypt, który pomaga nam to osiągnąć.
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`;
Wykonanie powyższych skryptów tworzy widok o nazwie general_v_movie_rentals w naszym myflixdb
Wybierzmy teraz wszystkie pola z tabeli o nazwie general_v_movie_rentals.
SELECT * FROM `general_v_movie_rentals`;
Wykonanie powyższego skryptu w MySQL Workbench w stosunku do myflixdb daje nam następujące wyniki pokazane poniżej.
| 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 |
Zauważ, że nie musieliśmy pisać złożonego zapytania JOIN, aby uzyskać informacje o członkach, filmach i szczegółach wypożyczania filmów. Po prostu użyliśmy widoku w zwykłym poleceniu SELECT, jak każdej innej zwykłej tabeli. Widok można wywołać z dowolnego miejsca w systemie aplikacji działającym na myflixdb.
Spadekping Widoki w MySQL
Polecenie DROP może zostać użyte do usunięcia widoku z pliku baza danych to nie jest już wymagane. Podstawowa składnia upuszczania widoku jest następująca.
DROP VIEW `general_v_movie_rentals`;
Spadekping widok usuwa tylko zapisane zapytanie; podstawowe tabele i ich dane pozostają nienaruszone.


