Oversigt :i denne øvelse lærer du, hvordan du bruger SQLite CREATE VIEW sætning for at oprette en ny visning i databasen.
Hvad er en udsigt
I databaseteori er en visning et resultatsæt af en lagret forespørgsel. En visning er måden at pakke en forespørgsel ind i et navngivet objekt gemt i databasen.
Du kan få adgang til dataene i de underliggende tabeller gennem en visning. Tabellerne, som forespørgslen i visningsdefinitionen refererer til, kaldes basistabeller.
En visning er nyttig i nogle tilfælde:
- For det første giver visninger et abstraktionslag over tabeller. Du kan tilføje og fjerne kolonnerne i visningen uden at røre ved skemaet for de underliggende tabeller.
- For det andet kan du bruge visninger til at indkapsle komplekse forespørgsler med joinforbindelser for at forenkle dataadgangen.
SQLite-visning er skrivebeskyttet. Det betyder, at du ikke kan bruge INSERT , SLET og OPDATERING sætninger for at opdatere data i basistabellerne gennem visningen.
SQLite OPRET VISNING erklæring
For at oprette en visning skal du bruge CREATE VIEW erklæring som følger:
CREATE [TEMP] VIEW [IF NOT EXISTS] view_name[(column-name-list)]
AS
select-statement;Code language: SQL (Structured Query Language) (sql)
Angiv først et navn til visningen.
For det andet skal du bruge TEMP eller MIDLERTIDIG mulighed, hvis du ønsker, at visningen kun skal være synlig i den aktuelle databaseforbindelse. Visningen kaldes en midlertidig visning, og SQLite fjerner automatisk den midlertidige visning, når databaseforbindelsen lukkes.
For det tredje skal du angive en SELECT erklæring for synspunktet. Som standard stammer kolonnerne i visningen fra resultatsættet af SELECT udmelding. Du kan dog tildele navnene på de visningskolonner, der er forskellige fra kolonnenavnet i tabellen
SQLite OPRET VISNING eksempler
Lad os tage nogle eksempler på at oprette en ny visning ved hjælp af CREATE VIEW erklæring.
1) Oprettelse af en visning for at forenkle en kompleks forespørgsel
Følgende forespørgsel henter data fra sporene , albums , medietyper og genrer tabeller i eksempeldatabasen ved hjælp af den indre join-klausul.
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) Prøv det
For at oprette en visning baseret på denne forespørgsel, bruger du følgende sætning:
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) Prøv det
Fra nu af kan du bruge følgende simple forespørgsel i stedet for den komplekse ovenfor.
SELECT * FROM v_tracks;Code language: SQL (Structured Query Language) (sql) Prøv det
2) Oprettelse af en visning med brugerdefinerede kolonnenavne
Følgende sætning opretter en visning med navnet v_albums der indeholder albumtitel og albumlængden i minutter:
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)
I dette eksempel specificerede vi nye kolonner for visningen AlbumTitle for albums.title kolonne og minutter for udtrykket SUM(millisekunder) / 60000
Denne forespørgsel returnerer data fra v_albums se:
SELECT * FROM v_albums;Code language: SQL (Structured Query Language) (sql)
I dette selvstudie har du lært om databasevisninger og hvordan du bruger CREATE VIEW sætning for at oprette nye visninger i SQLite.