Ten samouczek przedstawia sposób tworzenia i wykorzystania widoków MySQL w Twojej bazie danych do wykonywania różnych działań. Na przykład możesz użyć widoków, aby ukryć określone dane przed użytkownikami, umożliwiając w ten sposób przeglądanie danych przechowywanych w tabeli za pomocą widoku. Widoki mogą również umożliwić programistom tworzenie prostych i abstrakcyjnych połączeń z bazą danych.
Widoki: podstawowe użycie
Możesz użyć ogólnej składni poniżej, aby utworzyć widok w MySQL:
Utwórz [lub zastąp] Wyświetl „Widok_name” jako wybierz Cols z nazwy tbl_name;
Zaczynamy od wywołania klauzuli Utwórz Widok, a następnie nazwę widoku, który chcemy utworzyć. Nazwa widoku powinna być unikalna w bazie danych i nie powinna być taką samą nazwą co istniejąca tabela. Wynika to z funkcji, w której widoki i tabele mają podobną przestrzeń nazwaną.
Klauzula lub zamień jest opcjonalnym parametrem, który umożliwia zastąpienie istniejącego widoku bieżącym. Jeśli nie zostanie określone, utworzenie widoku z istniejącą nazwą zwróci błąd.
Na koniec określamy klauzulę Wybierz, a następnie nazwy kolumn dla widoku. Należy zauważyć, że możesz również dodać warunki do instrukcji, aby wybrać określone tabele, w których warunki są spełnione.
Przykład przypadków użycia
Użyjmy różnych przykładów, aby zilustrować, w jaki sposób możemy tworzyć widoki w MySQL.
Aby utworzyć prosty widok, możemy użyć dowolnej przykładowej bazy danych, takiej jak próbka Sakila DB lub utworzyć jedną. Ze względu na prostotę użyję bazy danych Sakila. Rozważ pytanie poniżej, aby utworzyć prosty widok.
Użyj Sakila;
Utwórz Widok Sample_View Jak wybierz Rental_id, kwota z grupy płatności według Rent_ID;
Pokaż tabele;
Po wykonaniu powyższych zapytań utworzymy widok z określonymi kolumnami. Możesz zobaczyć widok utworzony przez wywołanie tabel pokazów w MySQL, jak pokazano poniżej:
----------Wykładane----------------------
|. próbka_view |
|. Personel |
|. Staff_list |
|. sklep |
+----------------------------+
NOTATKA: Jak wspomniano, widoki i tabele mają tę samą przestrzeń nazw; w ten sposób można je postrzegać jako tabelę w powyższym poleceniu. Jednak nie jest to tabela, którą można zobaczyć za pomocą pełnego polecenia show:
|. próbka_view | Zobacz |
Po utworzeniu zapytania możesz zapytać o przechowywane w nim informacje, jakby to była normalna tabela MySQL. Na przykład:
Wybierz * z limitu 5 Sample_View 5;
+-----------+--------+
|. Rental_id | kwota |
+-----------+--------+
|. NULL | 1.99 |
|. 1 | 2.99 |
|. 2 | 2.99 |
|. 3 | 3.99 |
|. 4 | 4.99 |
+-----------+--------+
5 wierszy w zestawie (0.04 s)
Wyjście będzie zależeć od kolumn przechowywanych w widoku.
Jak zaktualizować widok
MySQL pozwala również modyfikować lub aktualizować informacje w widoku bez upuszczania ich za pomocą klauzuli alter.
Ogólna składnia do aktualizacji widoku to:
Alter view view_name jako wybierz kols z nazwy_bolity;
Na przykład możemy wykonać prostą aktualizację do Sample_View, dodając kolumnę z sumą wartości, jak pokazano w zapytaniu poniżej:
MySQL> alter View Sample_View jako Wybierz Rental_id, kwotę, sumę (kwota * 10) z grupy płatności według Rental_id;
Mysql> desc próbka_view;
+------------------+---------------+------+-----+---------+-------+
|. Pole | Typ | NULL | Klucz | Domyślnie | Dodatkowe |
+------------------+---------------+------+-----+---------+-------+
|. Rental_id | int | Tak | |. NULL | |
|. kwota | dziesiętne (5,2) | Nie |. |. NULL | |
|. Suma (kwota * 10) | dziesiętne (29,2) | Tak | |. NULL | |
+------------------+---------------+------+-----+---------+-------+
Powyższe zapytanie aktualizuje dane przechowywane w widoku bez niszczenia istniejącego widoku.
Jak upuścić widok
Usunięcie istniejącego widoku w MySQL jest tak proste, jak wywołanie klauzuli upuszczenia, a następnie nazwa widoku.
Na przykład, aby usunąć Sample_View utworzony w powyższych sekcjach, możemy zrobić:
Upuść widok, jeśli istnieje próbka_view;
Powyższe zapytanie niszczy określony widok i wszystkie przechowywane w nim dane.
Wniosek
W tym samouczku nauczyłeś się tworzyć i używać widoków MySQL do tworzenia kopii tabeli bazy danych.