...

Cómo usar Vistas (VIEW) en SQL para simplificar tus consultas

A medida que tus bases de datos crecen, también lo hacen tus consultas SQL.
Llega un punto donde escribir el mismo SELECT una y otra vez deja de ser práctico.
Aquí es donde entran las vistas (VIEWs): una forma de guardar consultas como si fueran tablas virtuales, listas para reutilizar en cualquier momento.

Las vistas son una herramienta clave para:

  • Simplificar consultas complejas.
  • Proteger datos sensibles.
  • Estandarizar reportes o indicadores.

En este artículo aprenderás qué son las vistas, cómo crearlas y mantenerlas, y verás ejemplos prácticos que puedes ejecutar en db-fiddle.com.


¿Qué es una vista en SQL?

Una vista (VIEW) es una consulta almacenada que se comporta como una tabla.
Cuando haces una consulta sobre una vista, el motor SQL ejecuta la consulta base y devuelve el resultado como si fueran datos reales.

👉 Piensa en una vista como una “ventana” hacia los datos:
No almacena información por sí misma (salvo las vistas materializadas), sino que muestra resultados derivados de otras tablas.


Sintaxis básica de CREATE VIEW

CREATE VIEW nombre_vista AS
SELECT columnas
FROM tablas
WHERE condiciones;

Ejemplo 1: Crear una vista de empleados activos

Usando la tabla empleados:

CREATE VIEW vista_empleados_activos AS
SELECT nombre,
       puesto,
       salario,
       fecha_contratacion,
       id_departamento
FROM empleados
WHERE salario >= 70000;

Ahora puedes consultar esta vista como si fuera una tabla:

SELECT * FROM vista_empleados_activos;

Ejemplo 2: Vista con JOIN

Podemos combinar datos de dos tablas.
Supongamos que tenemos una tabla departamentos:

CREATE TABLE departamentos (
    id_departamento INT PRIMARY KEY,
    nombre_departamento VARCHAR(100)
);

INSERT INTO departamentos VALUES
(1, 'Ventas'),
(2, 'Marketing'),
(3, 'Finanzas'),
(4, 'Desarrollo');

Y creamos una vista uniendo ambas:

CREATE VIEW vista_empleados_departamentos AS
SELECT e.nombre,
       e.puesto,
       e.salario,
       d.nombre_departamento
FROM empleados e
JOIN departamentos d
ON e.id_departamento = d.id_departamento;

Consulta la vista:

SELECT * FROM vista_empleados_departamentos;

Ejemplo 3: Actualizar una vista existente

CREATE OR REPLACE VIEW vista_empleados_activos AS
SELECT nombre, puesto, salario
FROM empleados
WHERE salario > 80000;

💡 En SQL Server se usa ALTER VIEW en lugar de CREATE OR REPLACE VIEW.


Ejemplo 4: Eliminar una vista

DROP VIEW vista_empleados_departamentos;

Tipos de vistas

TipoDescripciónDisponibilidad
Vista estándarConsulta virtual, no almacena datos.Todos los motores
Vista materializadaAlmacena el resultado de la consulta (mejor rendimiento, pero requiere actualización manual o programada).PostgreSQL, SQL Server (Indexed View)

Buenas prácticas

  1. Usa nombres descriptivos: Ej. vista_empleados_activos.
  2. **Evitar SELECT *: especifica las columnas necesarias.
  3. Agrega comentarios en la vista (si tu motor lo permite): documenta su propósito.
  4. Ten cuidado al usar funciones no determinísticas: pueden limitar el refresco o indexación.
  5. Controla los permisos: puedes dar acceso solo a la vista y no a la tabla base (seguridad).

Diferencias entre motores

Motor SQLDetalles clave
SQL ServerUsa CREATE VIEW, ALTER VIEW, DROP VIEW. Soporta vistas indexadas.
PostgreSQLSoporta CREATE MATERIALIZED VIEW y refresco manual.
MySQLCREATE VIEW estándar; no materializadas.
SQLiteSoporta vistas estándar, sin indexación.

Conclusión

Las vistas en SQL son una herramienta esencial para mantener tu código organizado, seguro y eficiente.
Te permiten encapsular consultas complejas, reutilizarlas en reportes y limitar el acceso a los datos.

Practica estos ejemplos en db-fiddle.com y empieza a crear tus propias vistas reutilizables.

Deja un comentario

Seraphinite AcceleratorOptimized by Seraphinite Accelerator
Turns on site high speed to be attractive for people and search engines.