sql >> Base de Datos >  >> RDS >> SQLite

SQLite Crear vista

Resumen :en este tutorial, aprenderá a usar SQLite CREATE VIEW instrucción para crear una nueva vista en la base de datos.

Qué es una vista

En la teoría de bases de datos, una vista es un conjunto de resultados de una consulta almacenada. Una vista es la forma de empaquetar una consulta en un objeto con nombre almacenado en la base de datos.

Puede acceder a los datos de las tablas subyacentes a través de una vista. Las tablas a las que hace referencia la consulta en la definición de vista se denominan tablas base.

Una vista es útil en algunos casos:

  • Primero, las vistas brindan una capa de abstracción sobre las tablas. Puede agregar y eliminar columnas en la vista sin tocar el esquema de las tablas subyacentes.
  • En segundo lugar, puede usar vistas para encapsular consultas complejas con uniones para simplificar el acceso a los datos.

La vista de SQLite es de solo lectura. Significa que no puede usar INSERT , DELETE y UPDATE declaraciones para actualizar datos en las tablas base a través de la vista.

SQLite CREATE VIEW declaración

Para crear una vista, usa el CREATE VIEW declaración de la siguiente manera:

CREATE [TEMP] VIEW [IF NOT EXISTS] view_name[(column-name-list)]
AS 
   select-statement;Code language: SQL (Structured Query Language) (sql)

Primero, especifique un nombre para la vista. El IF NOT EXISTS La opción solo crea una nueva vista si no existe. Si la vista ya existe, no hace nada.

En segundo lugar, utilice el TEMP o TEMPORARY opción si desea que la vista solo sea visible en la conexión de base de datos actual. La vista se denomina vista temporal y SQLite elimina automáticamente la vista temporal cada vez que se cierra la conexión a la base de datos.

Tercero, especifique un SELECT declaración para la vista. De forma predeterminada, las columnas de la vista se derivan del conjunto de resultados de SELECT declaración. Sin embargo, puede asignar los nombres de las columnas de vista que son diferentes del nombre de columna de la tabla

SQLite CREATE VIEW ejemplos

Tomemos algunos ejemplos de cómo crear una nueva vista usando CREATE VIEW declaración.

1) Crear una vista para simplificar una consulta compleja

La siguiente consulta obtiene datos de las tracks , albums , media_types y genres tablas en la base de datos de muestra utilizando la cláusula de unión interna.

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)

Pruébalo

Para crear una vista basada en esta consulta, utilice la siguiente instrucción:

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)

Pruébalo

A partir de ahora, puede usar la siguiente consulta simple en lugar de la compleja anterior.

SELECT * FROM v_tracks;Code language: SQL (Structured Query Language) (sql)

Pruébalo

2) Crear una vista con nombres de columna personalizados

La siguiente declaración crea una vista llamada v_albums que contiene el título del álbum y la duración del álbum en minutos:

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)

En este ejemplo, especificamos nuevas columnas para la vista AlbumTitle para albums.title columna y Minutos para la expresión SUM(milliseconds) / 60000

Esta consulta devuelve datos de v_albums ver:

SELECT * FROM v_albums;Code language: SQL (Structured Query Language) (sql)

En este tutorial, ha aprendido acerca de las vistas de la base de datos y cómo usar CREATE VIEW instrucción para crear nuevas vistas en SQLite.