Widoki MySQL: Jak utworzyć widok z tabel z przykładami

Spisie treści:

Anonim

Co to są widoki w MySQL?

VIEWS to wirtualne tabele, które nie przechowują własnych danych, ale wyświetlają dane przechowywane w innych tabelach. Innymi słowy, VIEWS to nic innego jak zapytania SQL. Widok może zawierać wszystkie lub kilka wierszy z tabeli. Widok MySQL może pokazywać dane z jednej tabeli lub wielu tabel.

Składnia widoków MySQL

Przyjrzyjmy się teraz podstawowej składni używanej do tworzenia widoku w MySQL.

CREATE VIEW `view_name` AS SELECT statement;

GDZIE

  • „CREATE VIEW„ view_name ” mówi serwerowi MySQL, aby utworzył obiekt widoku w bazie danych o nazwie„ view_name ”
  • „Instrukcja AS SELECT” to instrukcje SQL, które mają być pakowane w widokach MySQL. Może to być instrukcja SELECT, która może zawierać dane z jednej tabeli lub wielu tabel.

Jak tworzyć widoki w MySQL

Poniżej przedstawiono krok po kroku proces tworzenia widoku w MySQL:

Stwórzmy teraz nasz pierwszy widok za pomocą „myflixdb”, utworzymy prosty widok, który ogranicza kolumny widoczne w tabeli elementów.

Załóżmy, że wymagania dotyczące autoryzacji stanowią, że dział księgowości może zobaczyć tylko numer członka, imię i nazwisko oraz płeć z tabeli członka. Aby to osiągnąć, możesz stworzyć WIDOK -

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

Wykonanie powyższego skryptu w środowisku MySQL względem myflixdb i rozwinięcie węzła widoków w eksploratorze bazy danych daje nam następujące wyniki.

Zauważ, że obiekt accounts_v_members jest teraz widoczny w obiektach widoków bazy danych. Wykonajmy teraz instrukcję SELECT, która wybiera wszystkie pola z widoku, jak pokazano na poniższym przykładzie widoku tworzenia MySQL.

SELECT * FROM `accounts_v_members`;

Wykonanie powyższego skryptu w środowisku MySQL przeciwko myflixdb daje 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. Inne szczegóły znalezione w tabeli członków zostały ukryte.

Jeśli chcemy zobaczyć instrukcje SQL, które tworzą określony widok, możemy to zrobić za pomocą poniższego skryptu.

POKAŻ WIDOK UTWÓRZ `accounts_v_members`;

Wykonanie powyższego skryptu daje nazwę widoku i instrukcje SQL SELECT użyte do utworzenia widoku.

Połączenia i widoki w MySQL

Przyjrzyjmy się teraz dość złożonemu przykładowi, który obejmuje wiele tabel i używa złączeń.

Utworzymy pakiet JOIN, który pobiera informacje z trzech (3) tabel, a mianowicie członków, filmów i wypożyczonych 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 powoduje utworzenie widoku 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 środowisku MySQL na 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

Pamiętaj, ż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łej instrukcji SELECT, tak jak w każdej innej zwykłej tabeli. Widok można wywołać z dowolnego miejsca w systemie aplikacji działającym na górze myflixdb.

Upuszczanie widoków w MySQL

Polecenie DROP może służyć do usuwania widoku z bazy danych, który nie jest już potrzebny. Podstawowa składnia usuwania widoku jest następująca.

DROP VIEW ` general_v_movie_rentals `;

Dlaczego warto korzystać z widoków?

Możesz chcieć używać widoków głównie z trzech powodów

  • Docelowo wykorzystasz swoją wiedzę SQL do tworzenia aplikacji, które będą korzystały z bazy danych do wymagań danych. Zaleca się używanie VIEWS oryginalnej struktury tabeli w aplikacji zamiast używania samych tabel. Gwarantuje to, że podczas refaktoryzacji bazy danych Twój starszy kod zobaczy oryginalny schemat za pośrednictwem widoku bez przerywania aplikacji.
  • VIEWS zwiększają możliwość ponownego użycia. Nie będziesz musiał wielokrotnie tworzyć skomplikowanych zapytań obejmujących łączenia. Cała złożoność jest konwertowana do jednej linii zapytania użyj VIEWS. Tak skondensowany kod będzie łatwiejszy do zintegrowania w Twojej aplikacji. Eliminuje to ryzyko literówek, a Twój kod będzie bardziej czytelny.
  • VIEWS pomaga w bezpieczeństwie danych. Możesz użyć widoków, aby pokazać użytkownikom tylko autoryzowane informacje i ukryć poufne dane, takie jak numery kart kredytowych.

Podsumowanie

  • Widoki to wirtualne tabele; nie zawierają zwracanych danych. Dane są przechowywane w tabelach, do których odwołuje się instrukcja SELECT.
  • Widoki poprawiają bezpieczeństwo bazy danych, pokazując tylko zamierzone dane dla upoważnionych użytkowników. Ukrywają wrażliwe dane.
  • Widoki ułatwiają życie, ponieważ nie musisz wielokrotnie pisać skomplikowanych zapytań.
  • Możliwe jest użycie INSERT, UPDATE i DELETE na VIEW. Operacje te zmienią podstawowe tabele VIEW. Należy tylko wziąć pod uwagę, że VIEW powinien zawierać wszystkie NIE NULL kolumny tabel, do których się odnosi. W idealnym przypadku nie należy używać WIDOKÓW do aktualizacji.