sql >> Database teknologi >  >> RDS >> SQLite

SQLite Opret visning

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. HVIS IKKE FINDER mulighed opretter kun en ny visning, hvis den ikke eksisterer. Hvis visningen allerede eksisterer, gør den intet.

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.


  1. mysql pivot-forespørgselsresultater med GROUP BY

  2. Hvad er den maksimale størrelse på VARCHAR2 i PL/SQL og SQL?

  3. er der en fordel ved varchar(500) frem for varchar(8000)?

  4. Find rækker med flere duplikerede felter med Active Record, Rails &Postgres