LAS VISTAS

 Una vista es una tabla sin contenido, totalmente virtual, que devuelve las filas resultado de ejecutar una consulta SQL. La diferencia con una consulta ejecutada directamente es que, mientras cada sentencia SQL enviada al SGBD tiene que pasar por un proceso de compilación, la vista es una consulta cuya definición ha sido almacenada previamente y que ya ha sido compilada, siendo por tanto el tiempo de ejecución bastante menor. También tiene una implicación importante en el hecho de que un usuario podría no tener acceso a la información de varias tablas y, sin embargo, sí tener acceso a la vista que consulta esas tablas, proporcionando de esta manera un acceso controlado solo a determinadas filas y columnas de esas tablas

 Por ejemplo, en una tabla de clientes, un usuario de una oficina podría tener solo acceso a la información de los clientes de una zona, y tan solo a ciertos campos. De esta manera, no tendría acceso a ningún campo de la tabla de clientes y, sin embargo, podría, tener acceso a una vista que consulte aquellos clientes cuya zona sea la suya.

La sintaxis para crear una vista es la siguiente:

 CREATE [OR REPLACE] VIEW [esquema.]nombre_vista [(lista_columnas)]  AS sentencia_select

 La ejecución del CREATE VIEW provoca que se compile la sentencia SELECT y que se almacene con el nombre nombre_vista. Los nombres: de las columnas de la vista se pueden especificar mediante lista_columnas. Si se especifica la lista de columnas, cada columna tendrá el alias correspondiente, si no, se obtendrá el nombre devuelto por la consulta. Si la vista ya existe, se puede reemplazar con OR REPLACE

Un ejemplo de CREATE VIEW es el siguiente:

Fichero para generar la base de datos nba

 CREATE VIEW nba_jugadoresMiami AS SELECT Nombre, Posición FROM nba.jugadores WHERE Nombre_equipo=”HEAT”;

SELECT * FROM nba_jugadoresMiami;vista1

 Además, se pueden crear vistas para que los usuarios no expertos puedan acceder de forma fácil a la información, proporcionándoles, a través de una vista, información obtenida a través de una sentencia SQL compleja:

Fichero para generar la base de datos jardinería.

CREATE VIEW VístaPedídos (CodigoPedido,Cliente,Total)  AS SELECT CodigoPedido, NombreC1iente, SUM(Cantidad*PrecioUnidadFROM Clientes NATURAL JOIN Pedidos NATURAL JOIN Detal1ePedidos  GROUP BY CodigoPedido;

vista2avista2b

Para eliminar una vista se hace uso del comando DROP VIEW:

DROP VIEW [esquema.]nombre_vista;

Hay pequeñas variaciones en la sintaxis de los comandos CREATE VIEW y DROP VIEW dependiendo del SGBD que se utilice. Además, se dispone también de un comando ALTER VIEW para hacer modificaciones a la definición de la vista. Para más información sobre estas variaciones, consultar los manuales de cada gestor

 ¿Sabías que … ? Una vista materializada es un tipo de vista que sí que contiene información. En todo momento el SGBD vuelca el resultado de la consulta en una tabla caché que existe de verdad (no es virtual) y que será actualizada de forma periódica con los resultados de la consulta SQL. Este tipo de tablas se utilizan en bases de datos multidimensionales y datawarehouse donde el acceso a tablas sencillas resulta muy costoso

Deja un comentario