SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Widok tworzenia SQLite

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przywrócić bazę danych Sqlite po wykonaniu kopii zapasowej Androida?

  2. Biblioteka Android Room nie może skopiować bazy danych z zasobu

  3. SQLite IN

  4. Zapytanie SQLite w Androidzie za pomocą kursora

  5. Jak sprawdzić, czy użytkownik jest obecny w bazie danych Sqlite za pomocą Androida?