Podsumowanie :w tym samouczku dowiesz się, jak używać SQLite CREATE VIEW oświadczenie, aby utworzyć nowy widok w bazie danych.
Co to jest widok
W teorii baz danych widok jest zbiorem wyników zapisanego zapytania. Widok to sposób na spakowanie zapytania do nazwanego obiektu przechowywanego w bazie danych.
Dostęp do danych tabel źródłowych można uzyskać za pośrednictwem widoku. Tabele, do których odnosi się zapytanie w definicji widoku, nazywane są tabelami podstawowymi.
Widok jest przydatny w niektórych przypadkach:
- Po pierwsze, widoki zapewniają warstwę abstrakcji nad tabelami. Możesz dodawać i usuwać kolumny w widoku bez dotykania schematu tabel bazowych.
- Po drugie, możesz użyć widoków do enkapsulacji złożonych zapytań z połączeniami, aby uprościć dostęp do danych.
Widok SQLite jest tylko do odczytu. Oznacza to, że nie możesz użyć INSERT , DELETE i UPDATE instrukcje aktualizowania danych w tabelach podstawowych za pośrednictwem widoku.
SQLite CREATE VIEW oświadczenie
Aby utworzyć widok, użyj CREATE VIEW oświadczenie w następujący sposób:
CREATE [TEMP] VIEW [IF NOT EXISTS] view_name[(column-name-list)]
AS
select-statement;Code language: SQL (Structured Query Language) (sql)
Najpierw określ nazwę widoku. IF NOT EXISTS opcja tworzy nowy widok tylko wtedy, gdy nie istnieje. Jeśli widok już istnieje, nic nie robi.
Po drugie, użyj TEMP lub TEMPORARY opcję, jeśli chcesz, aby widok był widoczny tylko w bieżącym połączeniu z bazą danych. Widok nazywany jest widokiem tymczasowym, a SQLite automatycznie usuwa widok tymczasowy za każdym razem, gdy połączenie z bazą danych zostaje zamknięte.
Po trzecie, określ SELECT oświadczenie dla widoku. Domyślnie kolumny widoku pochodzą z zestawu wyników SELECT oświadczenie. Możesz jednak przypisać nazwy kolumn widoku, które różnią się od nazwy kolumny tabeli
SQLite CREATE VIEW przykłady
Weźmy kilka przykładów tworzenia nowego widoku za pomocą CREATE VIEW oświadczenie.
1) Tworzenie widoku w celu uproszczenia złożonego zapytania
Następujące zapytanie pobiera dane z tracks , albums , media_types i genres tabele w przykładowej bazie danych za pomocą klauzuli inner join.
SELECT
trackid,
tracks.name,
albums.Title AS album,
media_types.Name AS media,
genres.Name AS genres
FROM
tracks
INNER JOIN albums ON Albums.AlbumId = tracks.AlbumId
INNER JOIN media_types ON media_types.MediaTypeId = tracks.MediaTypeId
INNER JOIN genres ON genres.GenreId = tracks.GenreId;Code language: SQL (Structured Query Language) (sql) Wypróbuj
Aby utworzyć widok na podstawie tego zapytania, użyj następującej instrukcji:
CREATE VIEW v_tracks
AS
SELECT
trackid,
tracks.name,
albums.Title AS album,
media_types.Name AS media,
genres.Name AS genres
FROM
tracks
INNER JOIN albums ON Albums.AlbumId = tracks.AlbumId
INNER JOIN media_types ON media_types.MediaTypeId = tracks.MediaTypeId
INNER JOIN genres ON genres.GenreId = tracks.GenreId;Code language: SQL (Structured Query Language) (sql) Wypróbuj
Od teraz możesz użyć następującego prostego zapytania zamiast złożonego powyżej.
SELECT * FROM v_tracks;Code language: SQL (Structured Query Language) (sql) Wypróbuj
2) Tworzenie widoku z niestandardowymi nazwami kolumn
Poniższa instrukcja tworzy widok o nazwie v_albums który zawiera tytuł albumu i długość albumu w minutach:
CREATE VIEW v_albums (
AlbumTitle,
Minutes
)
AS
SELECT albums.title,
SUM(milliseconds) / 60000
FROM tracks
INNER JOIN
albums USING (
AlbumId
)
GROUP BY AlbumTitle;
Code language: SQL (Structured Query Language) (sql)
W tym przykładzie określiliśmy nowe kolumny dla widoku AlbumTitle dla albums.title kolumna i minuty dla wyrażenia SUM(milliseconds) / 60000
To zapytanie zwraca dane z v_albums widok:
SELECT * FROM v_albums;Code language: SQL (Structured Query Language) (sql)
W tym samouczku nauczyłeś się widoków bazy danych i sposobu korzystania z CREATE VIEW instrukcja do tworzenia nowych widoków w SQLite.