Vistas en SQL

Una VIEW podemos definirla como una tabla virtual con su conjunto de filas y columnas, cuyo contenido está definido por una consulta SELECT sobre una o más tablas. Esto quiere decir, que los datos que contienen no están almacenados realmente en la vista, si no que se generan de manera dinámica de acuerdo a la consulta que ejecuten.

Las VIEW, se utilizan a menudo como filtros de las tablas de las que recogen datos y es por ello que se utilizan a menudo como mecanismos de seguridad, ya que permiten al usuario tener acceso de visibilidad de los datos, pero no a las tablas reales subyacentes. También se utilizan a menudo para simplificar y personalizar la visualización de los datos para el usuario.

La SELECT que define la VIEW puede provenir también de otras vistas del sistema.

En SQL Server, existen diferentes tipos de vistas:

  1. Vistas de usuario: tablas virtuales definidas por el usuario cuyo contenido está definido por una consulta.

  2. Vistas indexadas: cuyos datos se han almacenado como una tabla real ya que se han indizado a través de un índice clúster único. Este tipo de vistas mejoran mucho el rendimiento en algunos tipos de consultas que devuelven muchos registros.

  3. Vistas con particiones: combinan datos horizontales con particiones de un conjunto de tablas miembro en uno o más servidores.

  4. Vistas del sistema: específicas para consultar metadatos del sistema.

En el siguiente apartado nos centraremos en la ejemplificación de las sentencias DDL para la creación, actualización y eliminación de vistas de usuario:

CREATE VIEW

CREATE VIEW es la sentencia DDL para la creación de vistas. La sintaxis es la siguiente:

CREATE VIEW nombreVista AS SELECT ...

Pasemos ahora a crear nuestra vista de ejemplo:

CREATE VIEW vista_ejemplo AS
    SELECT nombre,
           apellidos,
           producto,
           descripcionProducto,
           precio
    FROM Clientes
    INNER JOIN Pedidos
    ON Clientes.idClientes = Pedidos.idClientes
    WHERE precio >= 450;

Una vez creada, podemos desplegar los componentes de nuestra base de datos y visualizarla en el subdirectorio: Views

Vistas en SQL

Para ejecutar la nueva VIEW, basta con hacer una SELECT sobre ella:

SELECT * FROM vista_ejemplo;
nombre apellidos producto descripcionProducto precio
María López Ruiz Play Station 5 Consola Sony 549,95
María López Ruiz Xbox series X Consola Xbox 499,99
Fernando García Rodríguez MacBook Pro M1 Portátil Apple 2449,5

Como vemos, la VIEW muestra en una tabla virtual, el conjunto de resultados devueltos por laSELECT sobre las tablas Clientes y Pedidos.

ALTER VIEW

ALTER VIEW, es la sentencia DDL para la actualización de vistas. La sintaxis es la siguiente:

ALTER VIEW nombreVista AS SELECT ...

Pasemos ahora a actualizar nuestra VIEW: vista_ejemplo

ALTER VIEW vista_ejemplo AS
    SELECT nombre,
           apellidos,
           producto,
            descripcionProducto,
            precio
    FROM Clientes
    INNER JOIN Pedidos
    ON Clientes.idClientes = Pedidos.idClientes
    WHERE precio >= 450
    AND descripcionProducto LIKE '%Consola%';

Si ejecutamos la consulta, veríamos que solo devuelve los dos primeros registros anteriores al añadirle la condición con la cláusula LIKE.

nombre apellidos producto descripcionProducto precio
María López Ruiz Play Station 5 Consola Sony 549,95
María López Ruiz Xbox series X Consola Xbox 499,99

DROP VIEW

DROP VIEW, es la sentencia DDL para la eliminación de vistas. La sintaxis es la siguiente:

DROP VIEW nombreVista;

Pasemos ahora a eliminar nuestra VIEW: vista_ejemplo

DROP VIEW vista_ejemplo;