Curso de Gestión de Bases de Datos con SQL Server

Vistas (Views): consultas que cualquiera puede usar

Curso de Gestión de Bases de Datos con SQL Server

0:0010:31

Recursos

Resumen

Compartir información con personas que no dominan SQL es uno de los retos más frecuentes en cualquier organización. Las vistas en SQL Server resuelven exactamente ese problema: permiten guardar consultas complejas con un nombre sencillo para que cualquier usuario las utilice como si fueran una tabla común. A continuación se explica cómo crearlas, modificarlas, inspeccionar su definición y eliminarlas cuando ya no sean necesarias.

¿Qué es una vista y por qué conviene usarla?

Una vista es una consulta guardada con un nombre que se puede invocar como si fuera una tabla [0:30]. La diferencia fundamental es que no almacena datos, sino únicamente la definición de la consulta. Cada vez que alguien la consulta, SQL Server ejecuta la query subyacente en ese instante y devuelve los resultados actualizados.

Usar vistas aporta tres beneficios principales [1:02]:

  • Abstracción: el usuario ve columnas con nombres claros sin preocuparse por la estructura interna de las tablas.
  • Seguridad: se puede conceder acceso a la vista sin dar acceso a las tablas base.
  • Mantenimiento: si cambia la lógica de negocio, se actualiza en un solo lugar y todos los consumidores reciben la nueva definición.

¿Cómo se crea una vista con CREATE VIEW?

La sintaxis básica es muy directa [1:30]:

sql CREATE VIEW nombre_vista AS SELECT columnas FROM tabla; GO

Un estándar recomendado es utilizar el prefijo VW en el nombre de la vista [2:00]. Esto facilita localizar las vistas en el explorador de objetos de SQL Server y mantiene un orden claro en cualquier motor de base de datos.

Por ejemplo, para la base de datos Tienda Latam se crea una vista que agrupa ventas por país, año y mes [2:10]:

sql CREATE VIEW VW_VentasPorPais AS SELECT codigo_pais, nombre_pais, anio, mes, COUNT(*) AS cantidad_pedidos, SUM(venta) AS ventas_totales, AVG(venta) AS ticket_promedio FROM ventas GROUP BY codigo_pais, nombre_pais, anio, mes; GO

Tras ejecutar el código, la vista aparece en la carpeta Vistas del explorador de objetos una vez que se actualiza [2:55].

¿Cómo se consulta una vista ya creada?

Se usa exactamente igual que una tabla [3:10]:

sql SELECT * FROM VW_VentasPorPais;

También se le pueden aplicar filtros, ordenamientos y cálculos adicionales. Por ejemplo, filtrar por Argentina y ordenar por año y mes, o bien agregar una suma histórica por país [3:30]:

sql SELECT nombre_pais, SUM(ventas_totales) AS total_historico FROM VW_VentasPorPais GROUP BY nombre_pais;

Para un usuario con conocimientos básicos de SQL, operar sobre una vista resulta más que suficiente.

¿Cómo modificar, inspeccionar y eliminar una vista?

¿Cómo se modifica una vista con ALTER VIEW?

Cuando cambian las reglas de negocio, se utiliza ALTER VIEW en lugar de eliminar y recrear [4:20]. La instrucción reemplaza la definición anterior por la nueva:

sql ALTER VIEW VW_VentasPorPais AS SELECT codigo_pais, nombre_pais, anio, mes, COUNT(*) AS cantidad_pedidos, SUM(venta) AS ventas_totales, MIN(venta) AS venta_minima, MAX(venta) AS venta_maxima, AVG(venta) AS ticket_promedio FROM ventas GROUP BY codigo_pais, nombre_pais, anio, mes; GO

En este ejemplo se agregan las columnas venta mínima y venta máxima [5:10]. Todos los usuarios que consulten la vista obtendrán automáticamente la nueva definición sin modificar sus propias consultas.

¿Cómo ver la definición de una vista?

Existen dos formas [5:55]:

  • Desde el explorador de objetos: clic derecho sobre la vista → Incluir vista como → CREATE o ALTER to → nueva ventana. Esto muestra el código DDL completo.
  • Con el procedimiento sp_helptext: ejecutando EXEC sp_helptext 'VW_VentasPorPais'; se obtiene la definición como resultado en forma de filas [6:20].

¿Cómo se elimina una vista con DROP VIEW?

Si la vista ya no es necesaria, se elimina con una sola instrucción [7:00]:

sql DROP VIEW IF EXISTS VW_VentasPorPais;

Tras ejecutar y actualizar el explorador, la vista desaparece por completo.

Las vistas son la primera herramienta de abstracción en SQL Server: no almacenan datos, pero sí la lógica. El siguiente nivel consiste en las vistas indexadas, que sí almacenan su resultado para mejorar el rendimiento.

Pon a prueba lo aprendido creando tres vistas para Tienda Latam: VW_VentasPorPais con ventas agrupadas por país, año y mes; VW_ProductosTopVentas con los veinte productos con mayor cantidad de unidades vendidas; y VW_ClientesSinPedidos con los clientes que nunca realizaron un pedido. Comparte tus resultados en los comentarios.

Vistas (Views): consultas que cualquiera puede usar