SQLite Vista (View)

Una vista (View) no es más que una sentencia SQLite almacenada en la base de datos con un nombre asociado. En realidad, una vista (View) es una combinación de tablas presentada como una consulta SQLite predefinida.

Una vista (View) puede contener todas las filas de una tabla o filas seleccionadas de una o más tablas. Una vista (View) se puede crear a partir de una o más tablas, dependiendo de la consulta SQLite que se utilice para crearla.

Una vista (View) es una tabla virtual que permite a los usuarios lograr lo siguiente:

  • Que los usuarios o grupos de usuarios consulten datos estructurados de manera más natural o intuitiva.

  • Restringir el acceso a los datos: los usuarios solo pueden ver datos limitados en lugar de la tabla completa.

  • Resumir datos de varias tablas para generar informes.

Las vistas de SQLite son de solo lectura, por lo que es posible que no se puedan ejecutar sentencias DELETE, INSERT o UPDATE sobre una vista. Sin embargo, se puede crear un desencadenador (trigger) sobre la vista que se activará cuando se intente realizar un DELETE, INSERT o UPDATE sobre la vista; las acciones necesarias se definen en el contenido del desencadenador.

Crear una vista

Las vistas de SQLite se crean con laCREATE VIEWsentencia CREATE VIEW. Las vistas de SQLite se pueden crear a partir de una sola tabla, varias tablas u otras vistas.

La sintaxis básica de CREATE VIEW es la siguiente:

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

Puede incluir varias tablas en la sentencia SELECT, de manera muy similar a como lo haría en una consulta SQL SELECT normal. Si se utilizan las palabras clave opcionales TEMP o TEMPORARY, la vista se creará en la base de datos temporal.

Ejemplo

Supongamos que la tabla COMPANY tiene 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

Ahora, a continuación se muestra un ejemplo de creación de una vista a partir de la tabla COMPANY. La vista solo selecciona algunas columnas de la tabla COMPANY:

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

Ahora, se puede consultar COMPANY_VIEW de manera similar a como se 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

Eliminar una vista

Para eliminar una vista, simplemente use laview_namesentencia DROP VIEW. 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 anteriormente:

sqlite> DROP VIEW COMPANY_VIEW;
Otras extensiones