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.