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.

  • 🧱 Definicja podstawowa: Widok to nazwane polecenie SELECT, które zachowuje się jak tabela, ale nie przechowuje żadnych danych.
  • 🔐 Świadczenie z tytułu bezpieczeństwa: Widoki udostępniają wyłącznie autoryzowane kolumny i ukrywają poufne pola przed użytkownikami.
  • ♻️ Korzyść z możliwości ponownego wykorzystania: Złożone, wielotabelowe polecenie JOIN jest napisane raz i ponownie używane jako jednowierszowe polecenie SELECT.
  • 🛠️. Składnia tworzenia: Polecenie CREATE VIEW `view_name` AS SELECT definiuje widok wewnątrz bazy danych.
  • 🗑️ Polecenia cyklu życia: Polecenie SHOW CREATE VIEW wyświetla zapisane zapytanie, a polecenie DROP VIEW usuwa je bez dotykania tabel bazowych.

MySQL odwiedzajacy

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.

Utwórz widoki w MySQL

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.

FAQ

Czasami. Funkcje INSERT, UPDATE i DELETE działają tylko w prostych widokach zawierających wszystkie kolumny NOT NULL tabeli bazowej. Widoki zbudowane na połączeniach lub funkcjach agregujących nie są aktualizowalne.

Tabela fizycznie przechowuje wiersze na dysku. Widok przechowuje tylko polecenie SELECT i przebudowuje swoje wiersze przy każdym zapytaniu, dzięki czemu zawsze odzwierciedla aktualne dane w tabelach bazowych.

Nie. Widok uruchamia swoją podstawową instrukcję SELECT przy każdym wywołaniu, więc wydajność jest taka sama jak w przypadku oryginalnego zapytania. MySQL nie ma zmaterializowanych widoków, a prędkość nadal zależy od indeksów tabeli bazowej.

Tak. Asystenci AI w narzędziach takich jak MySQL Workbench Potrafi utworzyć instrukcję CREATE VIEW na podstawie opisu. Przed jej uruchomieniem należy zweryfikować listę kolumn i klucze łączenia.

Częściowo. Sztuczna inteligencja może oznaczać wrażliwe kolumny, takie jak numery kart, i proponować bezpieczniejszą listę kolumn. Ostateczna decyzja musi być zgodna z polityką dostępu do danych obowiązującą w organizacji.

Podsumuj ten post następująco: