SQLite - Vistas

Una vista no es más que una declaración SQLite que se almacena en la base de datos con un nombre asociado. En realidad, es una composición de una tabla en forma de una consulta SQLite predefinida.

Una vista puede contener todas las filas de una tabla o filas seleccionadas de una o más tablas. Se puede crear una vista a partir de una o varias tablas, lo que depende de la consulta SQLite escrita para crear una vista.

Vistas que son una especie de tablas virtuales, permiten a los usuarios:

  • Estructurar los datos de una manera que los usuarios o clases de usuarios encuentren natural o intuitiva.

  • Restrinja el acceso a los datos de modo que un usuario solo pueda ver datos limitados en lugar de una tabla completa.

  • Resuma datos de varias tablas, que se pueden utilizar para generar informes.

Las vistas de SQLite son de solo lectura y, por lo tanto, es posible que no pueda ejecutar una instrucción DELETE, INSERT o UPDATE en una vista. Sin embargo, puede crear un desencadenador en una vista que se activa en un intento de ELIMINAR, INSERTAR o ACTUALIZAR una vista y hacer lo que necesite en el cuerpo del desencadenador.

Creando Vistas

Las vistas de SQLite se crean utilizando CREATE VIEWdeclaración. Las vistas de SQLite se pueden crear a partir de una sola tabla, varias tablas u otra vista.

A continuación se muestra la sintaxis básica de CREATE VIEW.

CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];

Puede incluir varias tablas en su instrucción SELECT de manera similar a como las usa en una consulta SELECT de SQL normal. Si la palabra clave TEMP o TEMPORARY opcional está presente, la vista se creará en la base de datos temporal.

Ejemplo

Considere la tabla EMPRESA con los siguientes registros:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

A continuación se muestra un ejemplo para crear una vista desde la tabla EMPRESA. Esta vista se utilizará para tener solo unas pocas columnas de la tabla EMPRESA.

sqlite> CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM  COMPANY;

Ahora puede consultar COMPANY_VIEW de forma similar a como consulta una tabla real. A continuación se muestra un ejemplo:

sqlite> SELECT * FROM COMPANY_VIEW;

Esto producirá el siguiente resultado.

ID          NAME        AGE
----------  ----------  ----------
1           Paul        32
2           Allen       25
3           Teddy       23
4           Mark        25
5           David       27
6           Kim         22
7           James       24

Descartar vistas

Para eliminar una vista, simplemente use la instrucción DROP VIEW con el view_name. La sintaxis básica de DROP VIEW es la siguiente:

sqlite> DROP VIEW view_name;

El siguiente comando eliminará la vista COMPANY_VIEW, que creamos en la última sección.

sqlite> DROP VIEW COMPANY_VIEW;