¿Qué es una vista?
Una vista es una consulta cuyo resultado se presenta como una tabla, puesto que tienen la misma estructura: filas y columnas. La diferencia es que sólo se almacena de ellas la definición y no los datos, que se extraen de las otras tablas de la base de datos. En SQLite la vistas son de solo lectura, de forma que no se pueden ejecutar instrucciones INSERT, DELETE o UPDATE sobre ellas para actualizar las tablas.
¿Cómo creo una vista en SQLite?
Para crear una vista en SQLite tenemos la instrucción CREATE VIEW. Tendremos que asignar un nombre a la vista que creamos y ejecutar una consulta que nos devuelva los datos que formarán nuestra vista. La sintaxis sería:
CREATE VIEW Vista_Nueva
AS
SELECT
t1.Id,
t1.Campo1,
t2.Campo1 as Campo2
FROM
tabla t1
INNER JOIN tabla2 t2 ON t1.IdEnTabla2 = t2.Id;
Vamos a poner como ejemplo que tenemos una tabla con variedades de quesos, otra con países y otra con tipos de leche. Y queremos una vista que nos muestre de qué país y con qué tipo de leche está hecho cada queso. Pues podríamos sacarlo con una consulta así:
CREATE VIEW v_QuesosDetallada
AS
SELECT
q.Id,
q.Nombre,
p.Nombre as Pais,
l.Descripcion as TipoLeche
FROM
Quesos q
INNER JOIN paises p ON q.IdPais = p.Id
INNER JOIN leches l ON q.IdTipoLeche = l.Id;
¿Cómo borro una vista?
Para eliminar una vista en SQLite tenemos la instruccion DROP VIEW, que iría seguida del nombre de la tabla. Siguiendo con el ejemplo de arriba, para borrar la vista v_QuesosDetallada tendríamos que ejecutar la siguiente instrucción:
DROP VIEW v_QuesosDetallada;
De esta forma eliminaríamos la vista de nuestra base de datos.
Si intentamos crear una vista con un nombre que ya existe o si intentamos borrar una que no existe recibiremos un mensaje de error. Por tanto es interesante asegurarse utilizando IF NOT EXISTS a la hora de crear e IF EXISTS a la de borrar.