Widok (VIEW) w SQL
- Poprzednia strona Increment SQL
- Następna strona Data SQL
Widoki są wizualnymi tabelami.
Ten rozdział wyjaśnia, jak tworzyć, aktualizować i usuwać widoki.
Zapytanie SQL CREATE VIEW
Co to jest widok?
W SQL, widok jest wizualizacją wyników zapytania SQL.
Widoki zawierają wiersze i kolumny, jak prawdziwa tabela. Pola w widoku to pola z prawdziwych tabel w jednej lub kilku bazach danych. Możemy dodać funkcje SQL, WHERE oraz JOIN do widoków i dostarczać dane, jakby pochodziły z pojedynczej tabeli.
Komentarz:Projekt i struktura bazy danych nie są wpływanymi przez funkcje, where lub join w widokach.
Gramatyka SQL CREATE VIEW
CREATE VIEW view_name AS SELECT nazwa_kolumny(ów) FROM nazwa_tabeli WHERE warunek
Komentarz:Widoki zawsze wyświetlają najnowsze dane. Każdy raz, gdy użytkownik zapytuje widok, silnik bazy danych rekonstruuje dane za pomocą zapytań SQL.
Przykład SQL CREATE VIEW
Widoki można używać z wewnętrznych zapytań, procedur przechowalniczych lub innych widoków. Możemy dostarczać użytkownikom dokładne dane, dodając funkcje, joiny itp. do widoków.
Baza danych Northwind zawiera kilka widoków domyślnie zainstalowanych. Widok "Current Product List" wyświetla wszystkie produkty używane z tabeli Products. Ten widok został utworzony za pomocą poniższego SQL:
CREATE VIEW [Current Product List] AS SELECT ProductID,ProductName FROM Products WHERE Discontinued=No
Możemy zapytać o ten widok:
SELECT * FROM [Current Product List]
Kolejny widok z bazy danych Northwind wybiera wszystkie produkty z tabeli Products, które mają cenę jednostkową wyższą niż średnia cena jednostkowa:
CREATE VIEW [Products Above Average Price] AS SELECT ProductName,UnitPrice FROM Products WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)
Możemy zapytać o ten widok w następujący sposób:
SELECT * FROM [Products Above Average Price]
Kolejny przykład widoku z bazy danych Northwind oblicza sumę sprzedaży każdego rodzaju w 1997 roku. Proszę zauważyć, że ten widok wybiera dane z innego widoku o nazwie "Product Sales for 1997":
CREATE VIEW [Category Sales For 1997] AS SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales FROM [Product Sales for 1997] GROUP BY CategoryName
Możemy zapytać o ten widok w następujący sposób:
SELECT * FROM [Category Sales For 1997]
Możemy dodać warunki do zapytania. Teraz, chcemy tylko zobaczyć całą sprzedaż kategorii "Beverages":
SELECT * FROM [Category Sales For 1997] WHERE CategoryName='Beverages'
Aktualizacja widoku SQL
Możesz zaktualizować widok za pomocą poniższej gramatyki:
Gramatyka CREATE OR REPLACE VIEW w SQL CREATE OR REPLACE VIEW view_name AS SELECT nazwa_kolumny(ów) FROM nazwa_tabeli WHERE warunek
Teraz, chcemy dodać kolumnę "Category" do widoku "Current Product List". Zaktualizujemy widok za pomocą poniższego SQL:
CREATE VIEW [Current Product List] AS SELECT ProductID,ProductName,Category FROM Products WHERE Discontinued=No
Unieważnienie widoku SQL
Możesz usunąć widok za pomocą polecenia DROP VIEW.
Gramatyka DROP VIEW w SQL
DROP VIEW view_name
- Poprzednia strona Increment SQL
- Następna strona Data SQL